HDU 4558 剑侠情缘
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4558
题意:给出一个n*m的格子,每个格子有一个价值。在其中选择一条路径,路径中的一个格子a的下一个格子b,b只能在a的右侧或者下侧,这个路径上奇数格子的数字与偶数格子的数字之和相等时此路径为合法路径。有所有合法路径的个数。
思路:f[i][j][k][2],f[i][j][k][0]表示到达(i,j)格子,奇数格子与偶数格子的差值为k,且下一个为偶数格子,f[i] [j][k][1]表示到达(i,j)格子,奇数格子与偶数格子的差值为k,且下一个为奇数格子。转移时,从(i,j)向(i+1,j)和 (i,j+1),由0转向1,k减去那个格子的值;由1转向0,k加上那个格子的值。
char s[N][N];
int n,m;
int f[N][N][11][2];void up(int &x,int y)
{x+=y;if(x>=mod) x-=mod;
}int cal()
{clr(f,0);int i,j,k,x;FOR1(i,n) FOR1(j,m) s[i][j]-='0';FOR1(i,n) FOR1(j,m){up(f[i][j][s[i][j]][0],1);FOR0(k,11){if(i<n){x=k+s[i+1][j];if(x>=11) x-=11;up(f[i+1][j][x][0],f[i][j][k][1]);x=k-s[i+1][j];if(x<0) x+=11;up(f[i+1][j][x][1],f[i][j][k][0]);}if(j<m){x=k+s[i][j+1];if(x>=11) x-=11;up(f[i][j+1][x][0],f[i][j][k][1]);x=k-s[i][j+1];if(x<0) x+=11;up(f[i][j+1][x][1],f[i][j][k][0]);}}}int ans=0;FOR1(i,n) FOR1(j,m){up(ans,f[i][j][0][0]);up(ans,f[i][j][0][1]);}return ans;
}int main()
{int num=0;rush(){RD(n,m);int i,j,k;FOR1(i,n) RD(s[i]+1);printf("Case %d: ",++num);PR(cal());}
}
HDU 4558 剑侠情缘相关推荐
- HDU——1106排序(istringstream的使用、STLvector练习)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- hdu 5438 Ponds 拓扑排序
Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
- hdu 1312 Red and Black 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...
- HDU 1429 胜利大逃亡(续) (BFS+位压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) ...
- hdu 1272 小希的迷宫
Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该 ...
- HDOJ 1157 HDU 1157 Who's in the Middle ACM 1157 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1157 题目描述: ...
- 大数加法【HDU 1002】
大数加法模板 一般的加法只要int类型的两数直接相加即可,大一点的数可以设为long long类型,而超过长整型的数则属于大数问题了,大数加法其实也比较简单,利用数组实现就可以啦: 主要思想如下: ( ...
- hdu 2665(主席树查询区间k大值)
先贴我自己写的代码做模板虽然跟原博主没什么两样.(一开始空间开的4*maxn,交到hdu上一直TLE很奇怪) #include<bits/stdc++.h> using namespace ...
最新文章
- word2vec_文本相似度
- MybatisPlus中@TableField注解的使用
- Boost:fork守护程序的测试程序
- 用最少数量的箭引爆气球
- java父类转子类_java中什么是继承,和继承的接口的关系?
- Redis:02---安装Redis(Linux+Windows+Docker)
- Spring Boot 注解(1)
- MySQL数据库阶段学习目录
- 关于.net 页面提交后 css失效或者部分失效的问题
- 【Java与智能设备】4_1 Activity的创建和跳转
- DB 管理的重要工具(数据字典)
- css最好看最全的按钮样式,动画效果大全,纯css样式
- C语言CGI编程入门(一)
- 【论文阅读】利用深度自编码器神经网络预测药物相似度
- 【深度】谭铁牛院士谈人工智能发展新动态
- c语言|程序设计|指针~字母出现次数(1)
- 全面!数据分析思路大梳理
- 天刀手游服务器显示,《天涯明月刀手游》合服规则说明
- httpcancry抓包教程_HttpCanary抓包工具app下载
- 定制RLC防孤岛测试负载