poj 1920 Towers of Hanoi
来源:互联网 发布:中国最美的地方 知乎 编辑:程序博客网 时间:2024/05/16 07:16
题目链接:http://poj.org/problem?id=1920
题目思路:这道题要倒过来想,就是从一根柱子的状态到达当前状态,这样只要从最大的disk到最小的disk判断是否需要移动就可以了。
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<string>#include<queue>#include<algorithm>#include<vector>#include<stack>#include<list>#include<iostream>#include<map>using namespace std;#define inf 0x3f3f3f3f#define Max 110#define mod 1000000int max(int a,int b){return a>b?a:b;}int min(int a,int b){return a<b?a:b;}int two[100100],n,s1,s2,s3;int flag[100100],num[3],id;inline void init(){ int i; two[0]=1; for(i=1;i<=100010;i++) two[i]=(two[i-1]<<1)%mod;}int main(){ int i,j; init(); while(scanf("%d",&n)!=EOF) { scanf("%d%d%d",&num[0],&num[1],&num[2]); for(i=0;i<3;i++) for(j=0;j<num[i];j++) { scanf("%d",&id); flag[id]=i; } int pos1=flag[n]; int ans=0; for(i=n;i>=1;i--) { if(flag[i]!=pos1) { pos1=3-pos1-flag[i]; ans=(ans+two[i-1])%mod; // printf("%d\n",i); } } printf("%d\n%d\n",flag[n]+1,(ans+mod)%mod); }}
- poj 1920 Towers of Hanoi
- poj 1920 Towers of Hanoi
- POJ 1920 Towers of Hanoi
- POJ 1920 :Towers of Hanoi
- POJ 1920 Towers of Hanoi 数论
- POJ 1920 Towers of Hanoi 笔记
- POJ 1958 Strange Towers of Hanoi [dp]
- POJ 1958 Strange Towers of Hanoi
- poj 1958 Strange Towers of Hanoi
- POJ 1958 Strange Towers of Hanoi
- poj 1958 Strange Towers of Hanoi
- poj1920 Towers of Hanoi
- poj1958Strange Towers of Hanoi
- poj 1958 : Strange Towers of Hanoi(DP)
- poj 1958 Strange Towers of Hanoi(递推)
- POJ 1958 Strange Towers of Hanoi (线性dp 推公式)
- POJ-1958 Strange Towers of Hanoi(线性动规)
- JOJ-2033-Towers of Hanoi
- O2O式生活
- Oracle与MySQL的几点区别
- ARX常用函数
- calling a host function from a __device__/__global__ function is not allowed
- 用一个表的记录更新另外一个表.
- poj 1920 Towers of Hanoi
- CS下在C#里调用显示水晶报表
- Flex DataGrid开发常用属性和技巧
- Junit4实例图解[收藏]
- oo软件设计说明书结构
- Oracle sql 性能优化调整 .
- 进程号和线程号
- 将S 所指字符串中的数字移到字符串后面,相对次序不变。例:s=“a1b2c3d4efg” fun(s)="abcdefg1234"
- python解决mysql乱码问题