poj2248 Addition Chains

这题...书上讲的有剧毒!

迭代加深对吧,书上写的是在DFS里枚举 i & j ,然而我狂T不止。

然后在学长的教导下发现每层DFS里只需枚举i即可,因为上一个数必须选。

因为不选上一个数的方案会在之前的DFS里搜到!

然后TM就16MS AC了。

我还想冲个榜,便打了一波表,结果因为空间太大而没能成功.....

 1 #include <cstdio>
 2 #include <cstring>
 3 const int N = 110;
 4 
 5 int a[N], lim;
 6 int ans[N][N], use[N], ask[N * N];
 7 
 8 void out(int);
 9 
10 bool DFS(int k, int n) {
11     if(k == lim + 1) {
12         //printf("find: %d %d \n", a[lim], n);
13         if(a[lim] == n) {
14             for(int i = 1; i <= lim; i++) {
15                 ans[n][i] = a[i];
16             }
17             ans[n][0] = lim;
18             //printf("lim = %d\n", lim);
19             //out(n);
20             return 1;
21         }
22         return 0;
23     }
24     bool vis[N];
25     memset(vis, 0, sizeof(vis));
26 
27     for(int i = k - 1; i >= 1; i--) {
28         int t = a[i] + a[k - 1];
29         if(!vis[t] && t <= n) {
30             vis[t] = 1;
31             a[k] = t;
32             int f = DFS(k + 1, n);
33             if(f) {
34                 return 1;
35             }
36         }
37     }
38     return 0;
39 }
40 
41 inline void out(int n) {
42     //printf("out: %d %d ", n, ans[n][0]);
43     for(int i = 1; i <= ans[n][0]; i++) {
44         printf("%d ", ans[n][i]);
45     }
46     printf("\n");
47     return;
48 }
49 
50 inline void solve(int n) {
51     for(int i = 1; i <= n; i++) {
52         lim = i;
53         if(DFS(2, n)) {
54             return;
55         }
56     }
57 }
58 
59 int main() {
60     int n, T = 0;
61     while(scanf("%d", &n) && n) {
62     /*for(n = 1; n <= 100; n++) {
63         memset(a, 0, sizeof(a));
64         a[1] = 1;
65         solve(n);
66         */
67         ask[++T] = n;
68     }
69     a[1] = 1;
70     for(int i = 1; i <= T; i++) {
71         if(!use[ask[i]]) {
72             use[ask[i]] = 1;
73             solve(ask[i]);
74         }
75         out(ask[i]);
76     }
77 
78     return 0;
79 }
AC代码
   1 #include <cstdio>
   2 int a[110][110];
   3 void pre() {
   4 a[1][0] = 1;
   5 a[1][1] = 1;
   6 
   7 a[2][0] = 2;
   8 a[2][1] = 1;
   9 a[2][2] = 2;
  10 
  11 a[3][0] = 3;
  12 a[3][1] = 1;
  13 a[3][2] = 2;
  14 a[3][3] = 3;
  15 
  16 a[4][0] = 3;
  17 a[4][1] = 1;
  18 a[4][2] = 2;
  19 a[4][3] = 4;
  20 
  21 a[5][0] = 4;
  22 a[5][1] = 1;
  23 a[5][2] = 2;
  24 a[5][3] = 4;
  25 a[5][4] = 5;
  26 
  27 a[6][0] = 4;
  28 a[6][1] = 1;
  29 a[6][2] = 2;
  30 a[6][3] = 4;
  31 a[6][4] = 6;
  32 
  33 a[7][0] = 5;
  34 a[7][1] = 1;
  35 a[7][2] = 2;
  36 a[7][3] = 4;
  37 a[7][4] = 6;
  38 a[7][5] = 7;
  39 
  40 a[8][0] = 4;
  41 a[8][1] = 1;
  42 a[8][2] = 2;
  43 a[8][3] = 4;
  44 a[8][4] = 8;
  45 
  46 a[9][0] = 5;
  47 a[9][1] = 1;
  48 a[9][2] = 2;
  49 a[9][3] = 4;
  50 a[9][4] = 8;
  51 a[9][5] = 9;
  52 
  53 a[10][0] = 5;
  54 a[10][1] = 1;
  55 a[10][2] = 2;
  56 a[10][3] = 4;
  57 a[10][4] = 8;
  58 a[10][5] = 10;
  59 
  60 a[11][0] = 6;
  61 a[11][1] = 1;
  62 a[11][2] = 2;
  63 a[11][3] = 4;
  64 a[11][4] = 8;
  65 a[11][5] = 10;
  66 a[11][6] = 11;
  67 
  68 a[12][0] = 5;
  69 a[12][1] = 1;
  70 a[12][2] = 2;
  71 a[12][3] = 4;
  72 a[12][4] = 8;
  73 a[12][5] = 12;
  74 
  75 a[13][0] = 6;
  76 a[13][1] = 1;
  77 a[13][2] = 2;
  78 a[13][3] = 4;
  79 a[13][4] = 8;
  80 a[13][5] = 12;
  81 a[13][6] = 13;
  82 
  83 a[14][0] = 6;
  84 a[14][1] = 1;
  85 a[14][2] = 2;
  86 a[14][3] = 4;
  87 a[14][4] = 8;
  88 a[14][5] = 12;
  89 a[14][6] = 14;
  90 
  91 a[15][0] = 6;
  92 a[15][1] = 1;
  93 a[15][2] = 2;
  94 a[15][3] = 4;
  95 a[15][4] = 5;
  96 a[15][5] = 10;
  97 a[15][6] = 15;
  98 
  99 a[16][0] = 5;
 100 a[16][1] = 1;
 101 a[16][2] = 2;
 102 a[16][3] = 4;
 103 a[16][4] = 8;
 104 a[16][5] = 16;
 105 
 106 a[17][0] = 6;
 107 a[17][1] = 1;
 108 a[17][2] = 2;
 109 a[17][3] = 4;
 110 a[17][4] = 8;
 111 a[17][5] = 16;
 112 a[17][6] = 17;
 113 
 114 a[18][0] = 6;
 115 a[18][1] = 1;
 116 a[18][2] = 2;
 117 a[18][3] = 4;
 118 a[18][4] = 8;
 119 a[18][5] = 16;
 120 a[18][6] = 18;
 121 
 122 a[19][0] = 7;
 123 a[19][1] = 1;
 124 a[19][2] = 2;
 125 a[19][3] = 4;
 126 a[19][4] = 8;
 127 a[19][5] = 16;
 128 a[19][6] = 18;
 129 a[19][7] = 19;
 130 
 131 a[20][0] = 6;
 132 a[20][1] = 1;
 133 a[20][2] = 2;
 134 a[20][3] = 4;
 135 a[20][4] = 8;
 136 a[20][5] = 16;
 137 a[20][6] = 20;
 138 
 139 a[21][0] = 7;
 140 a[21][1] = 1;
 141 a[21][2] = 2;
 142 a[21][3] = 4;
 143 a[21][4] = 8;
 144 a[21][5] = 16;
 145 a[21][6] = 20;
 146 a[21][7] = 21;
 147 
 148 a[22][0] = 7;
 149 a[22][1] = 1;
 150 a[22][2] = 2;
 151 a[22][3] = 4;
 152 a[22][4] = 8;
 153 a[22][5] = 16;
 154 a[22][6] = 20;
 155 a[22][7] = 22;
 156 
 157 a[23][0] = 7;
 158 a[23][1] = 1;
 159 a[23][2] = 2;
 160 a[23][3] = 4;
 161 a[23][4] = 5;
 162 a[23][5] = 9;
 163 a[23][6] = 18;
 164 a[23][7] = 23;
 165 
 166 a[24][0] = 6;
 167 a[24][1] = 1;
 168 a[24][2] = 2;
 169 a[24][3] = 4;
 170 a[24][4] = 8;
 171 a[24][5] = 16;
 172 a[24][6] = 24;
 173 
 174 a[25][0] = 7;
 175 a[25][1] = 1;
 176 a[25][2] = 2;
 177 a[25][3] = 4;
 178 a[25][4] = 8;
 179 a[25][5] = 16;
 180 a[25][6] = 24;
 181 a[25][7] = 25;
 182 
 183 a[26][0] = 7;
 184 a[26][1] = 1;
 185 a[26][2] = 2;
 186 a[26][3] = 4;
 187 a[26][4] = 8;
 188 a[26][5] = 16;
 189 a[26][6] = 24;
 190 a[26][7] = 26;
 191 
 192 a[27][0] = 7;
 193 a[27][1] = 1;
 194 a[27][2] = 2;
 195 a[27][3] = 4;
 196 a[27][4] = 8;
 197 a[27][5] = 9;
 198 a[27][6] = 18;
 199 a[27][7] = 27;
 200 
 201 a[28][0] = 7;
 202 a[28][1] = 1;
 203 a[28][2] = 2;
 204 a[28][3] = 4;
 205 a[28][4] = 8;
 206 a[28][5] = 16;
 207 a[28][6] = 24;
 208 a[28][7] = 28;
 209 
 210 a[29][0] = 8;
 211 a[29][1] = 1;
 212 a[29][2] = 2;
 213 a[29][3] = 4;
 214 a[29][4] = 8;
 215 a[29][5] = 16;
 216 a[29][6] = 24;
 217 a[29][7] = 28;
 218 a[29][8] = 29;
 219 
 220 a[30][0] = 7;
 221 a[30][1] = 1;
 222 a[30][2] = 2;
 223 a[30][3] = 4;
 224 a[30][4] = 8;
 225 a[30][5] = 10;
 226 a[30][6] = 20;
 227 a[30][7] = 30;
 228 
 229 a[31][0] = 8;
 230 a[31][1] = 1;
 231 a[31][2] = 2;
 232 a[31][3] = 4;
 233 a[31][4] = 8;
 234 a[31][5] = 10;
 235 a[31][6] = 20;
 236 a[31][7] = 30;
 237 a[31][8] = 31;
 238 
 239 a[32][0] = 6;
 240 a[32][1] = 1;
 241 a[32][2] = 2;
 242 a[32][3] = 4;
 243 a[32][4] = 8;
 244 a[32][5] = 16;
 245 a[32][6] = 32;
 246 
 247 a[33][0] = 7;
 248 a[33][1] = 1;
 249 a[33][2] = 2;
 250 a[33][3] = 4;
 251 a[33][4] = 8;
 252 a[33][5] = 16;
 253 a[33][6] = 32;
 254 a[33][7] = 33;
 255 
 256 a[34][0] = 7;
 257 a[34][1] = 1;
 258 a[34][2] = 2;
 259 a[34][3] = 4;
 260 a[34][4] = 8;
 261 a[34][5] = 16;
 262 a[34][6] = 32;
 263 a[34][7] = 34;
 264 
 265 a[35][0] = 8;
 266 a[35][1] = 1;
 267 a[35][2] = 2;
 268 a[35][3] = 4;
 269 a[35][4] = 8;
 270 a[35][5] = 16;
 271 a[35][6] = 32;
 272 a[35][7] = 34;
 273 a[35][8] = 35;
 274 
 275 a[36][0] = 7;
 276 a[36][1] = 1;
 277 a[36][2] = 2;
 278 a[36][3] = 4;
 279 a[36][4] = 8;
 280 a[36][5] = 16;
 281 a[36][6] = 32;
 282 a[36][7] = 36;
 283 
 284 a[37][0] = 8;
 285 a[37][1] = 1;
 286 a[37][2] = 2;
 287 a[37][3] = 4;
 288 a[37][4] = 8;
 289 a[37][5] = 16;
 290 a[37][6] = 32;
 291 a[37][7] = 36;
 292 a[37][8] = 37;
 293 
 294 a[38][0] = 8;
 295 a[38][1] = 1;
 296 a[38][2] = 2;
 297 a[38][3] = 4;
 298 a[38][4] = 8;
 299 a[38][5] = 16;
 300 a[38][6] = 32;
 301 a[38][7] = 36;
 302 a[38][8] = 38;
 303 
 304 a[39][0] = 8;
 305 a[39][1] = 1;
 306 a[39][2] = 2;
 307 a[39][3] = 4;
 308 a[39][4] = 8;
 309 a[39][5] = 12;
 310 a[39][6] = 13;
 311 a[39][7] = 26;
 312 a[39][8] = 39;
 313 
 314 a[40][0] = 7;
 315 a[40][1] = 1;
 316 a[40][2] = 2;
 317 a[40][3] = 4;
 318 a[40][4] = 8;
 319 a[40][5] = 16;
 320 a[40][6] = 32;
 321 a[40][7] = 40;
 322 
 323 a[41][0] = 8;
 324 a[41][1] = 1;
 325 a[41][2] = 2;
 326 a[41][3] = 4;
 327 a[41][4] = 8;
 328 a[41][5] = 16;
 329 a[41][6] = 32;
 330 a[41][7] = 40;
 331 a[41][8] = 41;
 332 
 333 a[42][0] = 8;
 334 a[42][1] = 1;
 335 a[42][2] = 2;
 336 a[42][3] = 4;
 337 a[42][4] = 8;
 338 a[42][5] = 16;
 339 a[42][6] = 32;
 340 a[42][7] = 40;
 341 a[42][8] = 42;
 342 
 343 a[43][0] = 8;
 344 a[43][1] = 1;
 345 a[43][2] = 2;
 346 a[43][3] = 4;
 347 a[43][4] = 8;
 348 a[43][5] = 9;
 349 a[43][6] = 17;
 350 a[43][7] = 34;
 351 a[43][8] = 43;
 352 
 353 a[44][0] = 8;
 354 a[44][1] = 1;
 355 a[44][2] = 2;
 356 a[44][3] = 4;
 357 a[44][4] = 8;
 358 a[44][5] = 16;
 359 a[44][6] = 32;
 360 a[44][7] = 40;
 361 a[44][8] = 44;
 362 
 363 a[45][0] = 8;
 364 a[45][1] = 1;
 365 a[45][2] = 2;
 366 a[45][3] = 4;
 367 a[45][4] = 8;
 368 a[45][5] = 9;
 369 a[45][6] = 18;
 370 a[45][7] = 36;
 371 a[45][8] = 45;
 372 
 373 a[46][0] = 8;
 374 a[46][1] = 1;
 375 a[46][2] = 2;
 376 a[46][3] = 4;
 377 a[46][4] = 8;
 378 a[46][5] = 10;
 379 a[46][6] = 18;
 380 a[46][7] = 36;
 381 a[46][8] = 46;
 382 
 383 a[47][0] = 9;
 384 a[47][1] = 1;
 385 a[47][2] = 2;
 386 a[47][3] = 4;
 387 a[47][4] = 8;
 388 a[47][5] = 12;
 389 a[47][6] = 13;
 390 a[47][7] = 26;
 391 a[47][8] = 39;
 392 a[47][9] = 47;
 393 
 394 a[48][0] = 7;
 395 a[48][1] = 1;
 396 a[48][2] = 2;
 397 a[48][3] = 4;
 398 a[48][4] = 8;
 399 a[48][5] = 16;
 400 a[48][6] = 32;
 401 a[48][7] = 48;
 402 
 403 a[49][0] = 8;
 404 a[49][1] = 1;
 405 a[49][2] = 2;
 406 a[49][3] = 4;
 407 a[49][4] = 8;
 408 a[49][5] = 16;
 409 a[49][6] = 32;
 410 a[49][7] = 48;
 411 a[49][8] = 49;
 412 
 413 a[50][0] = 8;
 414 a[50][1] = 1;
 415 a[50][2] = 2;
 416 a[50][3] = 4;
 417 a[50][4] = 8;
 418 a[50][5] = 16;
 419 a[50][6] = 32;
 420 a[50][7] = 48;
 421 a[50][8] = 50;
 422 
 423 a[51][0] = 8;
 424 a[51][1] = 1;
 425 a[51][2] = 2;
 426 a[51][3] = 4;
 427 a[51][4] = 8;
 428 a[51][5] = 16;
 429 a[51][6] = 17;
 430 a[51][7] = 34;
 431 a[51][8] = 51;
 432 
 433 a[52][0] = 8;
 434 a[52][1] = 1;
 435 a[52][2] = 2;
 436 a[52][3] = 4;
 437 a[52][4] = 8;
 438 a[52][5] = 16;
 439 a[52][6] = 32;
 440 a[52][7] = 48;
 441 a[52][8] = 52;
 442 
 443 a[53][0] = 9;
 444 a[53][1] = 1;
 445 a[53][2] = 2;
 446 a[53][3] = 4;
 447 a[53][4] = 8;
 448 a[53][5] = 16;
 449 a[53][6] = 32;
 450 a[53][7] = 48;
 451 a[53][8] = 52;
 452 a[53][9] = 53;
 453 
 454 a[54][0] = 8;
 455 a[54][1] = 1;
 456 a[54][2] = 2;
 457 a[54][3] = 4;
 458 a[54][4] = 8;
 459 a[54][5] = 16;
 460 a[54][6] = 18;
 461 a[54][7] = 36;
 462 a[54][8] = 54;
 463 
 464 a[55][0] = 9;
 465 a[55][1] = 1;
 466 a[55][2] = 2;
 467 a[55][3] = 4;
 468 a[55][4] = 8;
 469 a[55][5] = 16;
 470 a[55][6] = 18;
 471 a[55][7] = 36;
 472 a[55][8] = 54;
 473 a[55][9] = 55;
 474 
 475 a[56][0] = 8;
 476 a[56][1] = 1;
 477 a[56][2] = 2;
 478 a[56][3] = 4;
 479 a[56][4] = 8;
 480 a[56][5] = 16;
 481 a[56][6] = 32;
 482 a[56][7] = 48;
 483 a[56][8] = 56;
 484 
 485 a[57][0] = 9;
 486 a[57][1] = 1;
 487 a[57][2] = 2;
 488 a[57][3] = 4;
 489 a[57][4] = 8;
 490 a[57][5] = 16;
 491 a[57][6] = 32;
 492 a[57][7] = 48;
 493 a[57][8] = 56;
 494 a[57][9] = 57;
 495 
 496 a[58][0] = 9;
 497 a[58][1] = 1;
 498 a[58][2] = 2;
 499 a[58][3] = 4;
 500 a[58][4] = 8;
 501 a[58][5] = 16;
 502 a[58][6] = 32;
 503 a[58][7] = 48;
 504 a[58][8] = 56;
 505 a[58][9] = 58;
 506 
 507 a[59][0] = 9;
 508 a[59][1] = 1;
 509 a[59][2] = 2;
 510 a[59][3] = 4;
 511 a[59][4] = 8;
 512 a[59][5] = 16;
 513 a[59][6] = 17;
 514 a[59][7] = 34;
 515 a[59][8] = 51;
 516 a[59][9] = 59;
 517 
 518 a[60][0] = 8;
 519 a[60][1] = 1;
 520 a[60][2] = 2;
 521 a[60][3] = 4;
 522 a[60][4] = 8;
 523 a[60][5] = 16;
 524 a[60][6] = 20;
 525 a[60][7] = 40;
 526 a[60][8] = 60;
 527 
 528 a[61][0] = 9;
 529 a[61][1] = 1;
 530 a[61][2] = 2;
 531 a[61][3] = 4;
 532 a[61][4] = 8;
 533 a[61][5] = 16;
 534 a[61][6] = 20;
 535 a[61][7] = 40;
 536 a[61][8] = 60;
 537 a[61][9] = 61;
 538 
 539 a[62][0] = 9;
 540 a[62][1] = 1;
 541 a[62][2] = 2;
 542 a[62][3] = 4;
 543 a[62][4] = 8;
 544 a[62][5] = 16;
 545 a[62][6] = 20;
 546 a[62][7] = 40;
 547 a[62][8] = 60;
 548 a[62][9] = 62;
 549 
 550 a[63][0] = 9;
 551 a[63][1] = 1;
 552 a[63][2] = 2;
 553 a[63][3] = 4;
 554 a[63][4] = 8;
 555 a[63][5] = 16;
 556 a[63][6] = 20;
 557 a[63][7] = 21;
 558 a[63][8] = 42;
 559 a[63][9] = 63;
 560 
 561 a[64][0] = 7;
 562 a[64][1] = 1;
 563 a[64][2] = 2;
 564 a[64][3] = 4;
 565 a[64][4] = 8;
 566 a[64][5] = 16;
 567 a[64][6] = 32;
 568 a[64][7] = 64;
 569 
 570 a[65][0] = 8;
 571 a[65][1] = 1;
 572 a[65][2] = 2;
 573 a[65][3] = 4;
 574 a[65][4] = 8;
 575 a[65][5] = 16;
 576 a[65][6] = 32;
 577 a[65][7] = 64;
 578 a[65][8] = 65;
 579 
 580 a[66][0] = 8;
 581 a[66][1] = 1;
 582 a[66][2] = 2;
 583 a[66][3] = 4;
 584 a[66][4] = 8;
 585 a[66][5] = 16;
 586 a[66][6] = 32;
 587 a[66][7] = 64;
 588 a[66][8] = 66;
 589 
 590 a[67][0] = 9;
 591 a[67][1] = 1;
 592 a[67][2] = 2;
 593 a[67][3] = 4;
 594 a[67][4] = 8;
 595 a[67][5] = 16;
 596 a[67][6] = 32;
 597 a[67][7] = 64;
 598 a[67][8] = 66;
 599 a[67][9] = 67;
 600 
 601 a[68][0] = 8;
 602 a[68][1] = 1;
 603 a[68][2] = 2;
 604 a[68][3] = 4;
 605 a[68][4] = 8;
 606 a[68][5] = 16;
 607 a[68][6] = 32;
 608 a[68][7] = 64;
 609 a[68][8] = 68;
 610 
 611 a[69][0] = 9;
 612 a[69][1] = 1;
 613 a[69][2] = 2;
 614 a[69][3] = 4;
 615 a[69][4] = 8;
 616 a[69][5] = 16;
 617 a[69][6] = 32;
 618 a[69][7] = 64;
 619 a[69][8] = 68;
 620 a[69][9] = 69;
 621 
 622 a[70][0] = 9;
 623 a[70][1] = 1;
 624 a[70][2] = 2;
 625 a[70][3] = 4;
 626 a[70][4] = 8;
 627 a[70][5] = 16;
 628 a[70][6] = 32;
 629 a[70][7] = 64;
 630 a[70][8] = 68;
 631 a[70][9] = 70;
 632 
 633 a[71][0] = 10;
 634 a[71][1] = 1;
 635 a[71][2] = 2;
 636 a[71][3] = 4;
 637 a[71][4] = 8;
 638 a[71][5] = 16;
 639 a[71][6] = 32;
 640 a[71][7] = 64;
 641 a[71][8] = 68;
 642 a[71][9] = 70;
 643 a[71][10] = 71;
 644 
 645 a[72][0] = 8;
 646 a[72][1] = 1;
 647 a[72][2] = 2;
 648 a[72][3] = 4;
 649 a[72][4] = 8;
 650 a[72][5] = 16;
 651 a[72][6] = 32;
 652 a[72][7] = 64;
 653 a[72][8] = 72;
 654 
 655 a[73][0] = 9;
 656 a[73][1] = 1;
 657 a[73][2] = 2;
 658 a[73][3] = 4;
 659 a[73][4] = 8;
 660 a[73][5] = 16;
 661 a[73][6] = 32;
 662 a[73][7] = 64;
 663 a[73][8] = 72;
 664 a[73][9] = 73;
 665 
 666 a[74][0] = 9;
 667 a[74][1] = 1;
 668 a[74][2] = 2;
 669 a[74][3] = 4;
 670 a[74][4] = 8;
 671 a[74][5] = 16;
 672 a[74][6] = 32;
 673 a[74][7] = 64;
 674 a[74][8] = 72;
 675 a[74][9] = 74;
 676 
 677 a[75][0] = 9;
 678 a[75][1] = 1;
 679 a[75][2] = 2;
 680 a[75][3] = 4;
 681 a[75][4] = 8;
 682 a[75][5] = 16;
 683 a[75][6] = 24;
 684 a[75][7] = 25;
 685 a[75][8] = 50;
 686 a[75][9] = 75;
 687 
 688 a[76][0] = 9;
 689 a[76][1] = 1;
 690 a[76][2] = 2;
 691 a[76][3] = 4;
 692 a[76][4] = 8;
 693 a[76][5] = 16;
 694 a[76][6] = 32;
 695 a[76][7] = 64;
 696 a[76][8] = 72;
 697 a[76][9] = 76;
 698 
 699 a[77][0] = 9;
 700 a[77][1] = 1;
 701 a[77][2] = 2;
 702 a[77][3] = 4;
 703 a[77][4] = 8;
 704 a[77][5] = 9;
 705 a[77][6] = 17;
 706 a[77][7] = 34;
 707 a[77][8] = 68;
 708 a[77][9] = 77;
 709 
 710 a[78][0] = 9;
 711 a[78][1] = 1;
 712 a[78][2] = 2;
 713 a[78][3] = 4;
 714 a[78][4] = 8;
 715 a[78][5] = 16;
 716 a[78][6] = 24;
 717 a[78][7] = 26;
 718 a[78][8] = 52;
 719 a[78][9] = 78;
 720 
 721 a[79][0] = 10;
 722 a[79][1] = 1;
 723 a[79][2] = 2;
 724 a[79][3] = 4;
 725 a[79][4] = 8;
 726 a[79][5] = 16;
 727 a[79][6] = 24;
 728 a[79][7] = 26;
 729 a[79][8] = 52;
 730 a[79][9] = 78;
 731 a[79][10] = 79;
 732 
 733 a[80][0] = 8;
 734 a[80][1] = 1;
 735 a[80][2] = 2;
 736 a[80][3] = 4;
 737 a[80][4] = 8;
 738 a[80][5] = 16;
 739 a[80][6] = 32;
 740 a[80][7] = 64;
 741 a[80][8] = 80;
 742 
 743 a[81][0] = 9;
 744 a[81][1] = 1;
 745 a[81][2] = 2;
 746 a[81][3] = 4;
 747 a[81][4] = 8;
 748 a[81][5] = 16;
 749 a[81][6] = 32;
 750 a[81][7] = 64;
 751 a[81][8] = 80;
 752 a[81][9] = 81;
 753 
 754 a[82][0] = 9;
 755 a[82][1] = 1;
 756 a[82][2] = 2;
 757 a[82][3] = 4;
 758 a[82][4] = 8;
 759 a[82][5] = 16;
 760 a[82][6] = 32;
 761 a[82][7] = 64;
 762 a[82][8] = 80;
 763 a[82][9] = 82;
 764 
 765 a[83][0] = 9;
 766 a[83][1] = 1;
 767 a[83][2] = 2;
 768 a[83][3] = 4;
 769 a[83][4] = 8;
 770 a[83][5] = 16;
 771 a[83][6] = 17;
 772 a[83][7] = 33;
 773 a[83][8] = 66;
 774 a[83][9] = 83;
 775 
 776 a[84][0] = 9;
 777 a[84][1] = 1;
 778 a[84][2] = 2;
 779 a[84][3] = 4;
 780 a[84][4] = 8;
 781 a[84][5] = 16;
 782 a[84][6] = 32;
 783 a[84][7] = 64;
 784 a[84][8] = 80;
 785 a[84][9] = 84;
 786 
 787 a[85][0] = 9;
 788 a[85][1] = 1;
 789 a[85][2] = 2;
 790 a[85][3] = 4;
 791 a[85][4] = 8;
 792 a[85][5] = 16;
 793 a[85][6] = 17;
 794 a[85][7] = 34;
 795 a[85][8] = 68;
 796 a[85][9] = 85;
 797 
 798 a[86][0] = 9;
 799 a[86][1] = 1;
 800 a[86][2] = 2;
 801 a[86][3] = 4;
 802 a[86][4] = 8;
 803 a[86][5] = 16;
 804 a[86][6] = 18;
 805 a[86][7] = 34;
 806 a[86][8] = 68;
 807 a[86][9] = 86;
 808 
 809 a[87][0] = 10;
 810 a[87][1] = 1;
 811 a[87][2] = 2;
 812 a[87][3] = 4;
 813 a[87][4] = 8;
 814 a[87][5] = 16;
 815 a[87][6] = 24;
 816 a[87][7] = 28;
 817 a[87][8] = 29;
 818 a[87][9] = 58;
 819 a[87][10] = 87;
 820 
 821 a[88][0] = 9;
 822 a[88][1] = 1;
 823 a[88][2] = 2;
 824 a[88][3] = 4;
 825 a[88][4] = 8;
 826 a[88][5] = 16;
 827 a[88][6] = 32;
 828 a[88][7] = 64;
 829 a[88][8] = 80;
 830 a[88][9] = 88;
 831 
 832 a[89][0] = 10;
 833 a[89][1] = 1;
 834 a[89][2] = 2;
 835 a[89][3] = 4;
 836 a[89][4] = 8;
 837 a[89][5] = 16;
 838 a[89][6] = 32;
 839 a[89][7] = 64;
 840 a[89][8] = 80;
 841 a[89][9] = 88;
 842 a[89][10] = 89;
 843 
 844 a[90][0] = 9;
 845 a[90][1] = 1;
 846 a[90][2] = 2;
 847 a[90][3] = 4;
 848 a[90][4] = 8;
 849 a[90][5] = 16;
 850 a[90][6] = 18;
 851 a[90][7] = 36;
 852 a[90][8] = 72;
 853 a[90][9] = 90;
 854 
 855 a[91][0] = 10;
 856 a[91][1] = 1;
 857 a[91][2] = 2;
 858 a[91][3] = 4;
 859 a[91][4] = 8;
 860 a[91][5] = 16;
 861 a[91][6] = 24;
 862 a[91][7] = 25;
 863 a[91][8] = 50;
 864 a[91][9] = 75;
 865 a[91][10] = 91;
 866 
 867 a[92][0] = 9;
 868 a[92][1] = 1;
 869 a[92][2] = 2;
 870 a[92][3] = 4;
 871 a[92][4] = 8;
 872 a[92][5] = 16;
 873 a[92][6] = 20;
 874 a[92][7] = 36;
 875 a[92][8] = 72;
 876 a[92][9] = 92;
 877 
 878 a[93][0] = 10;
 879 a[93][1] = 1;
 880 a[93][2] = 2;
 881 a[93][3] = 4;
 882 a[93][4] = 8;
 883 a[93][5] = 16;
 884 a[93][6] = 20;
 885 a[93][7] = 36;
 886 a[93][8] = 72;
 887 a[93][9] = 92;
 888 a[93][10] = 93;
 889 
 890 a[94][0] = 10;
 891 a[94][1] = 1;
 892 a[94][2] = 2;
 893 a[94][3] = 4;
 894 a[94][4] = 8;
 895 a[94][5] = 16;
 896 a[94][6] = 24;
 897 a[94][7] = 26;
 898 a[94][8] = 52;
 899 a[94][9] = 78;
 900 a[94][10] = 94;
 901 
 902 a[95][0] = 10;
 903 a[95][1] = 1;
 904 a[95][2] = 2;
 905 a[95][3] = 4;
 906 a[95][4] = 8;
 907 a[95][5] = 16;
 908 a[95][6] = 20;
 909 a[95][7] = 21;
 910 a[95][8] = 37;
 911 a[95][9] = 74;
 912 a[95][10] = 95;
 913 
 914 a[96][0] = 8;
 915 a[96][1] = 1;
 916 a[96][2] = 2;
 917 a[96][3] = 4;
 918 a[96][4] = 8;
 919 a[96][5] = 16;
 920 a[96][6] = 32;
 921 a[96][7] = 64;
 922 a[96][8] = 96;
 923 
 924 a[97][0] = 9;
 925 a[97][1] = 1;
 926 a[97][2] = 2;
 927 a[97][3] = 4;
 928 a[97][4] = 8;
 929 a[97][5] = 16;
 930 a[97][6] = 32;
 931 a[97][7] = 64;
 932 a[97][8] = 96;
 933 a[97][9] = 97;
 934 
 935 a[98][0] = 9;
 936 a[98][1] = 1;
 937 a[98][2] = 2;
 938 a[98][3] = 4;
 939 a[98][4] = 8;
 940 a[98][5] = 16;
 941 a[98][6] = 32;
 942 a[98][7] = 64;
 943 a[98][8] = 96;
 944 a[98][9] = 98;
 945 
 946 a[99][0] = 9;
 947 a[99][1] = 1;
 948 a[99][2] = 2;
 949 a[99][3] = 4;
 950 a[99][4] = 8;
 951 a[99][5] = 16;
 952 a[99][6] = 32;
 953 a[99][7] = 33;
 954 a[99][8] = 66;
 955 a[99][9] = 99;
 956 
 957 a[100][0] = 9;
 958 a[100][1] = 1;
 959 a[100][2] = 2;
 960 a[100][3] = 4;
 961 a[100][4] = 8;
 962 a[100][5] = 16;
 963 a[100][6] = 32;
 964 a[100][7] = 64;
 965 a[100][8] = 96;
 966 a[100][9] = 100;
 967 }
 968 int main() {
 969     pre();
 970     int n;
 971     while(scanf("%d", &n) && n) {
 972         for(int i = 1; i <= a[n][0]; i++) {
 973             printf("%d ", a[n][i]);
 974         }
 975         printf("\n");
 976     }
 977     return 0;
 978 }
 979 /*#include <cstdio>
 980 #include <cstring>
 981 const int N = 110;
 982 
 983 int a[N], lim;
 984 int ans[N][N], use[N], ask[N * N];
 985 
 986 void out(int);
 987 
 988 bool DFS(int k, int n) {
 989     if(k == lim + 1) {
 990         //printf("find: %d %d \n", a[lim], n);
 991         if(a[lim] == n) {
 992             for(int i = 1; i <= lim; i++) {
 993                 ans[n][i] = a[i];
 994             }
 995             ans[n][0] = lim;
 996             //printf("lim = %d\n", lim);
 997             //out(n);
 998             return 1;
 999         }
1000         return 0;
1001     }
1002     bool vis[N];
1003     memset(vis, 0, sizeof(vis));
1004 
1005     for(int i = k - 1; i >= 1; i--) {
1006         int t = a[i] + a[k - 1];
1007         if(!vis[t] && t <= n) {
1008             vis[t] = 1;
1009             a[k] = t;
1010             int f = DFS(k + 1, n);
1011             if(f) {
1012                 return 1;
1013             }
1014         }
1015     }
1016     return 0;
1017 }
1018 
1019 inline void out(int n) {
1020     //printf("out: %d %d ", n, ans[n][0]);
1021     printf("a[%d][0] = %d;\n", n, ans[n][0]);
1022     for(int i = 1; i <= ans[n][0]; i++) {
1023         printf("a[%d][%d] = %d;\n", n, i, ans[n][i]);
1024     }
1025     printf("\n");
1026     return;
1027 }
1028 
1029 inline void solve(int n) {
1030     for(int i = 1; i <= n; i++) {
1031         lim = i;
1032         if(DFS(2, n)) {
1033             return;
1034         }
1035     }
1036 }
1037 
1038 int main() {
1039     int n, T = 0;
1040     //while(scanf("%d", &n) && n) {
1041     for(n = 1; n <= 100; n++) {
1042         /*memset(a, 0, sizeof(a));
1043         a[1] = 1;
1044         solve(n);
1045 
1046         ask[++T] = n;
1047     }
1048     a[1] = 1;
1049     for(int i = 1; i <= T; i++) {
1050         if(!use[ask[i]]) {
1051             use[ask[i]] = 1;
1052             solve(ask[i]);
1053         }
1054         out(ask[i]);
1055     }
1056 
1057     return 0;
1058 }*/
千行暴力打表

 

posted @ 2018-06-15 17:03  garage  阅读(307)  评论(0编辑  收藏  举报