hdu 4558 走格子dp
2016-05-08 13:02
357 查看
dp[i][j][k]记录走到i,j节点的时候,两者的差值为x的方案数
每次枚举x (tmp+=(a[i][j]))%=11 (tmp2=(11-tmp1))%=11 在这里的tmp2就实现了人与剑之间的转换
每次枚举x (tmp+=(a[i][j]))%=11 (tmp2=(11-tmp1))%=11 在这里的tmp2就实现了人与剑之间的转换
#include<cstdio> #include<cstring> using namespace std; const int N=480,M=11,mod=1e9+7; char s ; int a ,n,m,ans,dp [M],T,kase=0; int main() { scanf("%d",&T); while(T--) { ans=0; memset(dp,0,sizeof(dp)); scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { scanf("%s",s); for(int j=0;j<m;j++) a[i][j]=s[j]-'0'; } for(int i=n-1;i>=0;i--) { for(int j=m-1;j>=0;j--) { for(int x=0;x<11;x++) { int tmp=(x+a[i][j])%11; int tmp2=(11-tmp)%11; if(i<n-1) (dp[i][j][x]+=dp[i+1][j][tmp2])%=mod; if(j<m-1) (dp[i][j][x]+=dp[i][j+1][tmp2])%=mod; if(tmp==0)(dp[i][j][x]+=1)%=mod; if(x==0) (ans+=dp[i][j][x])%=mod; } } } printf("Case %d: %d\n",++kase,ans); } return 0; }
相关文章推荐
- 从广义线性模型到逻辑回归
- 什么是微信公众号开发
- EM算法学习笔记
- 20145231第十周学习笔记
- SpringMVC实战(三)-Controller配置详解
- LDA入门级学习笔记
- 130. Surrounded Regions -- 被某字符包围的区域
- BZOJ 1753 Who's in the Middle
- WEB前端开发最佳实践(4)
- 初级线段树讲解
- [二分答案 物理 数学] BZOJ 3695 滑行
- OC中属性self.a与_a访问的区别
- 《对寻找第i个顺序统计的数》一文的研究。
- 《java集合概述》
- 第一次使用树莓派3代简易教程step by step
- 微信公众号开发教程
- C/C++——static用法完整总结
- microstation level2--0102
- linux学习-mail发送邮件(mail不能发邮件)
- 深度学习word2vec笔记之应用篇