HDU 5642 King's Order 디지털 dp
생각: dp[a][b], 현재 a위, 앞에 연속적으로 같은 a개를 더하면 모두 b개, 이때 dp[a][b]종이 가능하다.dp[0][1]=26을 초기화하면 첫 번째 자리와 두 번째 자리의 세 번째 자리를 마음대로 놓을 수 있다.
b=2, 3시 분명히 그들은 마음대로 놓을 수 있기 때문에 그의 가능성은 dp[a-1][b]%mod일 수도 있다.그가 앞과 똑같이 놓아야 하기 때문에, 당연히 가능한 개수는 변하지 않을 것이다.
b=1일 때 분명히 그의 앞에 있는 하나는 연속적으로 같고 두 개는 같고 세 개는 같지만 그는 앞에 있는 것과 같지 않다. 그래서 그의 가능성 개수는 (dp[a-1][1]+dp[a-1][2]+dp[a-1][2]+dp[a-1][3])*25이다.
여기.×25는 이것이 반드시 이전과 같지 않다는 것을 나타낸다.
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const __int64 mod=1e9+7;
__int64 dp[2005][4];
int main()
{
int test;
dp[0][1]=26;
for(int i=1;i<=2000;i++)
{
dp[i][2]=dp[i-1][1]%mod;
dp[i][3]=dp[i-1][2]%mod;
dp[i][1]=(dp[i-1][1]+dp[i-1][2]+dp[i-1][3])%mod*25;
}
scanf("%d",&test);
while(test--)
{
int n;
scanf("%d",&n);
printf("%I64d
",(dp[n-1][1]+dp[n-1][2]+dp[n-1][3])%mod);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.