首页 > 代码库 > 【HDOJ】1329 Hanoi Tower Troubles Again!
【HDOJ】1329 Hanoi Tower Troubles Again!
水题,搞清楚hanoi的定义就好做了。
1 /* 1329 */ 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cmath> 6 7 #define MAXN 55 8 9 int b[MAXN];10 int a[MAXN];11 12 bool isSquare(int x) {13 int y = (int) sqrt(x*1.0);14 15 return y*y == x;16 }17 18 void init() {19 int i, j, k;20 int n = 1;21 bool flag;22 23 memset(b, 0, sizeof(b));24 for (i=1; ; ++i) {25 flag = true;26 for (j=0; j<n; ++j) {27 if (b[j]==0 || isSquare(b[j]+i)) {28 flag = false;29 b[j] = i;30 break;31 }32 }33 if (flag) {34 a[n] = i-1;35 b[n++] = i;36 if (n > 50)37 break;38 }39 }40 }41 42 int main() {43 int t, n;44 45 #ifndef ONLINE_JUDGE46 freopen("data.in", "r", stdin);47 #endif48 49 init();50 scanf("%d", &t);51 while (t--) {52 scanf("%d", &n);53 printf("%d\n", a[n]);54 }55 56 return 0;57 }
【HDOJ】1329 Hanoi Tower Troubles Again!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。