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 }
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 }*/