2017 바이두의 별 재경기 Valley Numer(디지털 dp)
1138 단어 DP
디지털 dp,state 표지 앞의 몇 자리에 점증 서열이 있는지 여부입니다.
코드:
#include
using namespace std;
typedef long long ll ;
const int max_n=105;
const int mod = 1000000007;
ll n;
ll dp[max_n][13][2], a[max_n];
string s;
ll dfs(int pos,int pre,int limit,int state)
{
if(pos == -1) return 1;
if(!limit && dp[pos][pre][state] != -1) return dp[pos][pre][state];
ll tmp = 0;
int up = limit?a[pos]:9;
for(int i = 0; i <= up; i++)
{
if(pre==11 && i==0){
// 0 , 0
tmp = (tmp + dfs(pos-1, 11, limit&&i==up, 0))%mod;
continue;
}
if(i=0; i--)
{
a[pos++] = (s[i]-'0');
}
return dfs(pos-1,11,1,0);
}
int main()
{
int T;
scanf("%d",&T);
memset(dp, -1, sizeof(dp));
while(T--)
{
cin>>s;
printf("%I64d
",solve()-1);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[BOJ]11048(python)python 풀이 DP를 이용해 풀이 보통 이런 문제는 dfs나 bfs로 풀이하는 것이여서 고민을 했는데 이 문구 덕분에 DP 를 이용해 풀이할 수 있었다 뒤로 돌아가는 등의 경우를 고려하지 않아도 되기 때문이다 코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.