码迷,mamicode.com
首页 > 其他好文 > 详细

【HDOJ】1329 Hanoi Tower Troubles Again!

时间:2015-01-15 21:53:15      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

水题,搞清楚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_JUDGE
46         freopen("data.in", "r", stdin);
47     #endif
48     
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!

标签:

原文地址:http://www.cnblogs.com/bombe1013/p/4227249.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!