2563:统计问题
来源:互联网 发布:mac免费的视频播放器 编辑:程序博客网 时间:2024/06/01 09:01
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2563
方法一:dfs打表
思路:方法一比较流氓,完全是利用了数据小这一点,不过也算是锻炼一下dfs吧,一看题,整个题目叙述简直就是迷宫题的翻版啊有木有,不假思索直接dfs了,然后跪了。首先,dfs速度太慢,必然超时;此外这里的迷宫的起点选择要注意,选择在迷宫矩阵的正中央,由于n不会超过20,矩阵开到40*40就可以保证左右均可以走,否则会造成数组越界;还有,如果按照我的写法,需要把起点也要标记上,否则会走回原点。
难点:dfs的改写
注意:主函数内注释掉的部分是dfs主体部分,由于只要dfs存在就会超时,因此可耻地直接打表了。
#include<cstdio>#include<iostream>#include<cmath>using namespace std;const int MAX = 100;int num,n;int dir[3][2] = {{1,0},{-1,0},{0,1}};int book[MAX][MAX] = {0};void dfs(int x,int y,int step){ int dx,dy; if(step == n) { //cout<<x<<" "<<y<<endl; num++; return; } book[50][0] = 1; for(int i = 0;i < 3;i++) { dx = x+dir[i][0]; dy = y+dir[i][1]; if(book[dx][dy] == 1) continue; book[dx][dy] = 1; dfs(dx,dy,step+1); book[dx][dy] = 0; }}int main(){ int t; int ans[25] = {0,3,7,17,41,99,239,577,1393,3363,8119,19601,47321,114243,275807,665857,1607521,3880899,9369319,22619537,54608393}; /*for(n= 1;n <= 20;n++) { book[MAX][MAX] = {0}; num = 0; dfs(50,0,0); ans[n] = num; cout<<ans[n]<<" "; }*/ while(cin>>t) { while(t--) { cin>>n; cout<<ans[n]<<endl; } }}
方法二:递推
思路:这个方法是比较主流的方法,代码实现也比较简单,时间上也是可以允许的,但是思路还是没有搞懂,附思路链接:
http://www.cnblogs.com/cchun/archive/2012/02/15/2520236.html
难点:递推关系式的构建,代码实现分分钟
#include<cstdio>#include<iostream>#include<cmath>using namespace std;int getNum(int x){ if(x == 1) return 3; else if(x == 0) return 1; else return 2*getNum(x-1)+getNum(x-2);}int main(){ int t,n; while(cin>>t) { while(t--) { cin>>n; cout<<getNum(n)<<endl; } }}
0 0
- HDU 2563 统计问题
- HDU 2563 统计问题
- hdu 2563 统计问题
- hdu 2563 统计问题
- hdu 2563 统计问题
- hdu 2563 统计问题
- 统计问题 2563
- hdu-2563-统计问题
- hdu 2563 统计问题
- HDU 2563 统计问题
- hdu 2563 统计问题
- HDU - 2563 - 统计问题
- HDU-2563-统计问题
- HDU 2563 统计问题
- hdu 2563 统计问题
- 2563:统计问题
- hdu 2563 统计问题
- HDU 2563 统计问题
- HDU 5464 Clarke and problem(01背包)
- 【HNOI2011】数矩形
- 轻松学会android中补间动画
- 增强for循环
- editplus终极爆破修改版:
- 2563:统计问题
- Ubuntu 14.04下安装Vivado失败的解决方法
- Cocos2dx使用luaJavaBridge注意事项
- UVa 300 - Maya Calendar
- 美版iPhone 4s未激活解决方案
- 打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(二解决思路3)
- layer-list解决listView中相邻item之间线的重叠的问题
- USACO 1.4 The Clocks (位操作+枚举+DFS)
- ios属性定义