EOJ 1822 Hanoi Tower IV
http://acm.cs.ecnu.edu.cn/problem.php?problemid=1822
题意:
双色汉诺塔,只是最终结果需保证相同大小的两块不倒置;
容易想错:我最开始写成了:f[i] = 4*f[i-1] + 3;
引用别人的题解:http://bbs.csdn.net/topics/270038285
1 #include <stdio.h> 2 3 int main() 4 { 5 long long f[65], //没有倒置. 6 g[65]; //只有最大的两个同尺寸盘子倒置 7 f[1] = 3, g[1] = 2; 8 for(int i=2; i<65; i++) 9 { 10 g[i] = 2*g[i-1] + 2; 11 f[i] = 4*g[i-1] + 3; 12 } 13 int n; 14 while(scanf("%d", &n) != EOF) 15 printf("%lld\n", f[n]); 16 }