区间dp(codeforces245H)
来源:互联网 发布:破解的软件 编辑:程序博客网 时间:2024/05/17 02:10
区间dp, 一般都为第一重for循环枚举长度,然后枚举区间,进行状态转移。
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;typedef long long ll;#define INF 0x3f3f3f3fbool c[5005][5005]={0};int dp[5005][5005]={0};int main(){ char s[5005]; scanf("%s",s); int t=strlen(s); int i,j,k; for(i=0;i<t;i++) { for(j=0;;j++) { if((i-j)<0||(i+j)>=t) break; if(s[i-j]==s[i+j]) c[i-j+1][i+j+1]=true; else break; } for(j=0;;j++) { if((i-j-1)<0||(i+j)>=t) break; if(s[i-j-1]==s[i+j]) c[i-j][i+j+1]=true; else break; } } int q; scanf("%d",&q); for(i=1;i<=t;i++) { dp[i][i]=1; } for(i=2;i<=t;i++) for(j=1;j+i-1<=t;j++) { k=j+i-1; dp[j][k]=dp[j+1][k]+dp[j][k-1]-dp[j+1][k-1]+c[j][k]; } while(q--) { int aa,bb; scanf("%d%d",&aa,&bb); printf("%d\n",dp[aa][bb]); }}
0 0
- 区间dp(codeforces245H)
- CodeForces245H - Queries for Number of Palindromes(区间dp)
- hdu4597(区间dp)
- poj1651 (区间dp)
- hdu4283(区间DP)
- poj2955(区间DP)
- poj1141(区间DP)
- hdu2476(区间DP)
- poj1651(区间DP)
- lightoj1422(区间DP)
- zoj3469(区间DP)
- hdu4745(区间DP)
- NYOJ304(区间DP)
- hdu5115(区间dp)
- poj2955(区间dp)
- poj1651(区间dp)
- hdu2476(区间dp)
- Brackets(区间DP)
- 有效的沟通
- perl index和rindex的用法
- 【模板】FFT模板
- HelloWorld
- iOS开发 适配iOS10以及Xcode8
- 区间dp(codeforces245H)
- Linux下基于C/C++的Socket编程实例
- Sliding Window Maximum
- http协议get方法获取图片并保存到本地
- Masonry的使用,动画,出现问题解决等
- cuda-Block和Grid设定
- BZOJ1188 SG函数学习小记
- C#中的uint
- 第3周 项目4 - 顺序表应用(2)