BZOJ 3864 Hero meet devil DP套DP
来源:互联网 发布:windows最好的系统 编辑:程序博客网 时间:2024/05/17 06:22
题目大意:给定一个长度为
考虑
我们发现每一行之和上一行的状态有关
那么在这个问题中,我们令
由于每一行相邻两数最多差
预处理所有转移后直接DP,时间复杂度
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define MOD 1000000007using namespace std;const char letters[]={'A','C','G','T'};int n,m;char s[20];int trans[1<<15][4],cnt[1<<15],f[2][1<<15];void Pretreatment(){ int i,j,k; for(i=0;i<1<<n;i++) { static int f[20],g[20]; for(j=1;j<=n;j++) f[j]=f[j-1]+(i&(1<<j-1)?1:0); cnt[i]=f[n]; for(k=0;k<4;k++) { for(j=1;j<=n;j++) { g[j]=max(g[j-1],f[j]); if(letters[k]==s[j]) g[j]=max(g[j],f[j-1]+1); } trans[i][k]=0; for(j=1;j<=n;j++) if(g[j]-g[j-1]) trans[i][k]|=1<<j-1; } }}int main(){ int T,i,j,k; for(cin>>T;T;T--) { scanf("%s%d",s+1,&m); n=strlen(s+1); Pretreatment(); memset(f,0,sizeof f); f[0][0]=1; for(i=1;i<=m;i++) { memset(f[i&1],0,sizeof(f[0][0])<<15); for(j=0;j<1<<n;j++) for(k=0;k<4;k++) (f[i&1][trans[j][k]]+=f[~i&1][j])%=MOD; } static int ans[20]; memset(ans,0,sizeof ans); for(i=0;i<1<<n;i++) (ans[cnt[i]]+=f[m&1][i])%=MOD; for(i=0;i<=n;i++) printf("%d\n",ans[i]); } return 0;}
3 1
- [BZOJ 3864][HDU 4899]Hero meet devil(DP套DP)
- BZOJ 3864 Hero meet devil DP套DP
- BZOJ 3864: Hero meet devil【dp套dp
- [BZOJ 3864][HDU 4899]Hero meet devil(DP套DP)
- [DP套DP] BZOJ 3864 Hero meet devil
- BZOJ3864: Hero meet devil DP套DP
- [DP套DP] BZOJ3864: Hero meet devil
- 【bzoj 3864】Hero meets devil - DP套DP
- HDU-4899 Hero meet devil(DP套DP)
- HDU 4899 Hero meet devil(DP套DP)
- POJ 4899 Hero meet devil 【DP套DP[预处理]】
- bzoj 3864 Hero meet devil
- hdu 4899 Hero meet devil(状压dp)
- [BZOJ3864]Hero meet devil(状压dp)
- [hdu 4899]14年多校第四场C Hero meet devil 状压DP
- BZOJ3864: Hero meet devil
- BZOJ3864 Hero meet devil
- bzoj 3864 dp套dp
- Objective-C知识整理——实例变量修饰符
- 初识android项目文件夹
- E: Sub-process /usr/bin/dpkg returned dpkg: error processing package samba-common-bin (--configure):
- Cognos TM1和Cognos 10 BI 的区别
- 华为OJ测试--公共字串计算(注意对字符串的调用方式)
- BZOJ 3864 Hero meet devil DP套DP
- Android解析XML到对象工具类
- NSData与NSString转换
- 黑马程序员-java基础IO流(3)
- 在Windows 7下安装和配置MonoGame
- Codeforces Round #308 (Div. 2)
- webpack echarts配置实例
- C++/MFC 句柄
- 黑马程序员 java构造函数