uva 10795
2013-08-15 22:18
92 查看
#include <cstdio> using namespace std; const int maxn = 65; int begin[maxn], end[maxn]; int n; long long int hanoi(int *a, int n, int final){ if(n == 0){ return 0; } if(a == final){ return hanoi(a, n - 1, final ); } return (hanoi(a, n - 1, 6 - final - a ) + (1LL << (n - 1))); } int main(void) { int kase = 1; while(scanf("%d", &n) == 1 && n ){ int i, final; long long int ret = 0; for(i = 1; i <= n; i++){ scanf("%d", begin + i); } for(i = 1; i <= n; i++){ scanf("%d", end + i); } i = n; while(i >= 1 && begin[i] == end[i]){ --i; } if(i >= 1){ final = 6 - begin[i] - end[i]; ret = hanoi( begin, i - 1, final) + hanoi(end, i - 1, final) + 1; } printf("Case %d: %lld\n", kase++, ret); } return 0; }
相关文章推荐
- uva 10795 A Different Task
- uva_10795_A Different Task(分治)
- UVa10795新汉诺塔-深入了解递归
- Uva10795 - A Different Task
- uva 10795 - A Different Task(递归)
- UVA 10795 新汉诺塔问题
- Uva 10795 A Different Task 解题报告(递归+思维)
- uva10795 - A Different Task 汉诺塔 给出状态问步数
- UVA 10795 <递归>
- UVA 10795 - A Different Task(递归)
- UVA 10795 A Different Task(递归 状态转移)
- UVA 10795
- uva 10795 A Different Task(递归模拟)
- 汉诺塔相关,递归(新汉诺塔问题,uva 10795)
- uva10795 A Different Task
- UVA - 10795 A Different Task
- UVA 10795 A Different Task
- UVA-10795 - A Different Task
- UVa 10795 A Diffenent Task 新汉诺塔问题
- (06-09补)Uva 10795 A Different Task 新汉诺塔游戏(递推)