hdu4906 Our happy ending, 상태 압축 DP
1200 단어 ACM - 동적 계획
상태: dp[][state]에서state의 2진법은 한 명당 (1~k), 1은 찾을 수 있고 0은 찾을 수 없음을 나타낸다.
상태 이동 방정식: dp[i][state]=sum(dp[i-1][state']); state = 1<
#include
#include
#include
using namespace std;
typedef long long LL;
const LL mod = 1e9 + 7;
LL dp[1<<22];
int main()
{
int t, n, k, L;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d", &n, &k, &L);
int MIN = min(L, k);
int SIZE = (1<=0; --j) if(dp[j]>0)
{
LL tmp = dp[j];
for(int p=1; p<=MIN; ++p)
{
int next=(1<mod) dp[next] -= mod;
}
if(kmod) dp[j] -= mod;
}
}
}
LL ans = 0;
for(int i=0; i<=SIZE; ++i) if(i&(1<mod) ans -= mod;
}
printf("%I64d
", ans);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
동적 계획 연습 이동 경로묘사×책상 위에 m행 n열의 격자 행렬이 있는데 각 칸을 좌표로 표시한다. 줄 좌표는 아래에서 위로 차례로 증가하고 열 좌표는 왼쪽에서 오른쪽으로 차례로 증가하며 왼쪽 아래 칸의 좌표는 (1,1)이고 오른쪽 위 칸의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.