fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long int
  3. #define vi vector<int>
  4. #define vll vector<ll>
  5. #define vvi vector < vi >
  6. #define pii pair<int,int>
  7. #define pll pair<long long, long long>
  8. #define inf 1000000000000000001
  9. #define all(c) c.begin(),c.end()
  10. #define mp(x,y) make_pair(x,y)
  11. #define mem(a,val) memset(a,val,sizeof(a))
  12. #define eb emplace_back
  13. #define pb push_back
  14. #define f first
  15. #define s second
  16. #define fast_cin ios_base::sync_with_stdio(false);cin.tie(NULL);
  17. #define precise fixed(cout);cout<<setprecision(16);
  18. #define Set(N,p) N=((N)|((1LL)<<(p)))
  19. #define Reset(N,p) N=((N)&(~((1LL)<<(p))))
  20. #define Check(N,p) (!(((N)&((1LL)<<(p)))==(0)))
  21. #define POPCOUNT __builtin_popcountll
  22. #define RIGHTMOST __builtin_ctzll
  23. #define LEFTMOST(x) (63-__builtin_clzll((x)))
  24. #define NUMDIGIT(x,y) (((vlong)(log10((x))/log10((y))))+1)
  25. #define OUT(x) for(auto a:x) cout << a << " "; cout << endl;
  26. #define OK cout << "@===================ok===================@" <<endl;
  27. #define WTF cout <<"< "<<lo<<" | "<< hi <<" >" << endl;
  28.  
  29. using namespace std;
  30. int n=2;
  31. int m=2;
  32. const int mod=998244353;
  33. ll dp[160][10][70][70];
  34. int vis[160][10][70][70];
  35. int tc=1;
  36. ll f(int i, int j, int mask, int mask2){
  37. if(i>n || j>m) return 0;
  38. if(i==n) return (mask2==0);
  39. if(j==m) return f(i+1,0,mask2,0);
  40. if(vis[i][j][mask][mask2]==tc) return dp[i][j][mask][mask2];
  41. vis[i][j][mask][mask2]=tc;
  42.  
  43. ll res=0;
  44. if(!Check(mask,j)){//1x1
  45. res+=f(i,j+1,mask|(1<<j),mask2);
  46. res%=mod;
  47. }
  48. else {
  49. res=f(i,j+1,mask,mask2);
  50. res%=mod;
  51. }
  52. if(j+1<m && !Check(mask,j+1) && !Check(mask,j)){//1x2
  53. res+=f(i,j+2,mask|(1<<j)|(1<<(j+1)),mask2);
  54. res%=mod;
  55. }
  56. if(i+1<n && !Check(mask,j) && !Check(mask2,j)){
  57. res+=f(i,j+1,mask|(1<<j),mask2|(1<<j));
  58. res%=mod;
  59. }
  60. return dp[i][j][mask][mask2]=res;
  61. }
  62.  
  63. int main()
  64. {
  65. //freopen("in.txt","r",stdin);
  66. //freopen("out.txt","w",stdout);
  67. //cin >> m >> n;
  68. for(m=1;m<=6;m++){
  69. cout <<"if(h=="<<m<<") v= vll({";
  70. for(n=1;n<=144;n++){
  71. tc++;
  72. cout << f(0,0,0,0);
  73. if(n==144){
  74. cout <<" }); ";
  75. }
  76. else{
  77. cout <<" , ";
  78. }
  79. }
  80. cout <<"\n";
  81. }
  82. }
  83.  
Success #stdin #stdout 0.18s 88400KB
stdin
Standard input is empty
stdout
if(h==1) v= vll({1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 , 144 , 233 , 377 , 610 , 987 , 1597 , 2584 , 4181 , 6765 , 10946 , 17711 , 28657 , 46368 , 75025 , 121393 , 196418 , 317811 , 514229 , 832040 , 1346269 , 2178309 , 3524578 , 5702887 , 9227465 , 14930352 , 24157817 , 39088169 , 63245986 , 102334155 , 165580141 , 267914296 , 433494437 , 701408733 , 136658817 , 838067550 , 974726367 , 814549564 , 791031578 , 607336789 , 400124014 , 9216450 , 409340464 , 418556914 , 827897378 , 248209939 , 77862964 , 326072903 , 403935867 , 730008770 , 135700284 , 865709054 , 3164985 , 868874039 , 872039024 , 742668710 , 616463381 , 360887738 , 977351119 , 339994504 , 319101270 , 659095774 , 978197044 , 639048465 , 619001156 , 259805268 , 878806424 , 140367339 , 20929410 , 161296749 , 182226159 , 343522908 , 525749067 , 869271975 , 396776689 , 267804311 , 664581000 , 932385311 , 598721958 , 532862916 , 133340521 , 666203437 , 799543958 , 467503042 , 268802647 , 736305689 , 6863983 , 743169672 , 750033655 , 494958974 , 246748276 , 741707250 , 988455526 , 731918423 , 722129596 , 455803666 , 179688909 , 635492575 , 815181484 , 452429706 , 269366837 , 721796543 , 991163380 , 714715570 , 707634597 , 424105814 , 133496058 , 557601872 , 691097930 , 250455449 , 941553379 , 193764475 , 137073501 , 330837976 , 467911477 , 798749453 , 268416577 , 68921677 , 337338254 , 406259931 , 743598185 , 151613763 , 895211948 , 48581358 , 943793306 , 992374664 , 937923617 , 932053928 , 871733192 , 805542767 , 679031606 , 486330020 , 167117273 , 653447293 , 820564566 }); 
if(h==2) v= vll({2 , 7 , 22 , 71 , 228 , 733 , 2356 , 7573 , 24342 , 78243 , 251498 , 808395 , 2598440 , 8352217 , 26846696 , 86293865 , 277376074 , 891575391 , 869319676 , 227425286 , 660020143 , 339921686 , 454115562 , 44003876 , 246205504 , 328504826 , 189471753 , 650714581 , 814866317 , 909353073 , 895722249 , 785164797 , 345374861 , 925567131 , 340422751 , 603216170 , 226259777 , 941572750 , 451273151 , 72643720 , 725875914 , 800753958 , 60761009 , 257161071 , 31490264 , 290870854 , 646941755 , 203717149 , 967222348 , 461953732 , 152877689 , 951608804 , 549261663 , 450027398 , 947735053 , 747482188 , 743665513 , 34254968 , 98948229 , 585678495 , 823484393 , 960694739 , 125157056 , 512681514 , 702506859 , 498556329 , 687249979 , 859555054 , 770870106 , 488426687 , 378350760 , 852608861 , 451261950 , 829799598 , 91563177 , 653227179 , 223200763 , 233021938 , 269039398 , 816939369 , 490346861 , 22451848 , 739007389 , 750882801 , 972715238 , 933532420 , 27696638 , 43907096 , 224129859 , 688600035 , 249534162 , 214828309 , 205419054 , 581551309 , 737000319 , 590644506 , 929138175 , 644570006 , 275714981 , 542576774 , 260630944 , 50510272 , 867829339 , 396878639 , 11466278 , 561692487 , 301420747 , 456244097 , 110216198 , 485471944 , 112143580 , 711686486 , 763486741 , 893514423 , 735854818 , 341103430 , 865650685 , 205711961 , 143438785 , 768621984 , 247104070 , 368251056 , 583235254 , 872608395 , 836320677 , 801846466 , 372762974 , 85570358 , 825871935 , 193934483 , 323860673 , 339644567 , 150615538 , 467630508 , 215618142 , 963869396 , 643107116 , 681083896 , 724245055 , 214223239 , 685830876 , 549226459 , 122798308 , 231790507 }); 
if(h==3) v= vll({3 , 22 , 131 , 823 , 5096 , 31687 , 196785 , 1222550 , 7594361 , 47177097 , 293066688 , 822307944 , 328708112 , 377663008 , 194760022 , 885152916 , 278504481 , 569393082 , 564765542 , 758454811 , 364297220 , 279067859 , 847281577 , 280921306 , 923221467 , 602338608 , 238225949 , 866032989 , 410850855 , 39445668 , 457679207 , 314431016 , 800217302 , 88524917 , 403490210 , 746689539 , 92882930 , 271923582 , 151614903 , 29752346 , 718034583 , 317880542 , 916541053 , 104937098 , 233126089 , 250815007 , 810871092 , 33937910 , 90783561 , 431540718 , 112769660 , 414618481 , 145551587 , 108907106 , 438193250 , 561072745 , 48539799 , 387014576 , 985967636 , 865521205 , 248272983 , 817116610 , 926129053 , 886485160 , 41319893 , 279205152 , 668236387 , 530571392 , 11592873 , 577582855 , 822809430 , 361422804 , 540154304 , 977034961 , 259065614 , 697418842 , 839616001 , 718667927 , 599861650 , 474178001 , 161192002 , 793999594 , 273685905 , 201671029 , 631495357 , 878290954 , 794232589 , 274872074 , 188010759 , 11990973 , 360505750 , 737711189 , 922584137 , 197834596 , 308026031 , 629644963 , 960341725 , 435073728 , 50226300 , 193322358 , 167021237 , 651749996 , 412154262 , 290767963 , 322023685 , 32912973 , 685462099 , 946700384 , 592744804 , 612757530 , 223882659 , 40045189 , 49040747 , 567142483 , 310814251 , 411358229 , 739085854 , 89245922 , 657373410 , 332496741 , 458437356 , 18136689 , 656021494 , 640522487 , 831680243 , 466233405 , 418968967 , 817811004 , 477784265 , 354480376 , 755914375 , 274506129 , 334241612 , 456570792 , 422550604 , 700390825 , 141303893 , 90019213 , 443555632 , 480131464 , 152105907 , 142752348 , 402728369 , 894639627 }); 
if(h==4) v= vll({5 , 71 , 823 , 10012 , 120465 , 1453535 , 17525619 , 211351945 , 552195950 , 787601963 , 286569598 , 387354510 , 254258190 , 925655935 , 966072572 , 300481015 , 244597407 , 531263007 , 417515639 , 125204448 , 521039476 , 712066074 , 822508871 , 863404880 , 740361862 , 403985514 , 406733457 , 797475934 , 776585466 , 559797025 , 293404104 , 779226431 , 60563130 , 179392952 , 688765165 , 168916343 , 389846574 , 829659171 , 392074285 , 931906271 , 74540215 , 46984829 , 167719223 , 139065970 , 928191659 , 360192633 , 423590814 , 421918406 , 522440892 , 406411096 , 166223445 , 538061949 , 570452908 , 914879605 , 535753805 , 70542832 , 46902472 , 504666031 , 820433432 , 255253627 , 936764345 , 750740061 , 652598091 , 696273432 , 581140706 , 3719706 , 192625985 , 880283953 , 525124185 , 917217182 , 539944100 , 322553293 , 892150574 , 707091696 , 127717470 , 762437804 , 187256877 , 996254587 , 478297369 , 605659454 , 715473599 , 364872149 , 886079262 , 834380082 , 101279735 , 204340937 , 814304541 , 557021821 , 99298520 , 14150547 , 603474238 , 890490796 , 651392848 , 455860511 , 914260982 , 586223184 , 521280247 , 966990652 , 760301664 , 266701803 , 686922954 , 76314011 , 732775612 , 589845100 , 82740977 , 792069590 , 805478996 , 491172455 , 656426734 , 340513320 , 651685945 , 957256517 , 851595352 , 204220507 , 816489499 , 818955809 , 21924986 , 332104007 , 457032060 , 232629988 , 565863619 , 582059399 , 542722847 , 493466020 , 541494798 , 636937861 , 380729230 , 52574798 , 744331780 , 584869205 , 812276453 , 710601941 , 110269062 , 295885404 , 673871633 , 899232104 , 576933509 , 695656606 , 677898824 , 583830020 , 715596672 , 238614488 , 262891123 , 348042665 }); 
if(h==5) v= vll({8 , 228 , 5096 , 120465 , 2810694 , 65805403 , 540977663 , 76030068 , 299658 , 799399614 , 574144221 , 519770728 , 420504443 , 682949367 , 107284804 , 841160226 , 659361571 , 719361629 , 383137307 , 757469604 , 357168726 , 813044905 , 404261934 , 739202656 , 281564428 , 85004703 , 154080843 , 656940368 , 269778757 , 184933270 , 361670413 , 522844314 , 822794131 , 951441467 , 539962153 , 367551222 , 410131463 , 932200525 , 247803275 , 61777964 , 527276187 , 621589387 , 399209877 , 272409818 , 98004030 , 66145980 , 433319305 , 922919783 , 568746194 , 599753537 , 773020614 , 40164923 , 97358061 , 253659838 , 833236114 , 248681472 , 100124160 , 153947009 , 209568729 , 12069951 , 61694414 , 276631905 , 418542827 , 288927882 , 194345039 , 202358150 , 912435699 , 509326279 , 48065464 , 325461380 , 724538730 , 680966506 , 338018161 , 790878252 , 978953448 , 318695976 , 746862068 , 306377909 , 406282534 , 966343448 , 515978611 , 715809108 , 330078646 , 233416661 , 598996048 , 514147358 , 674370690 , 575887541 , 790803858 , 584117786 , 776402017 , 90983790 , 930935775 , 732802165 , 181280155 , 457414102 , 557841781 , 258046140 , 643309796 , 379944232 , 120279398 , 227534835 , 837131865 , 621965771 , 973533205 , 681020473 , 750163741 , 141373951 , 433107335 , 641548126 , 744627936 , 238578339 , 171849758 , 959449648 , 363284240 , 243614460 , 345767064 , 172413258 , 738764475 , 962013248 , 472471052 , 557281217 , 108148286 , 403504815 , 752359019 , 242292331 , 278008046 , 480301058 , 436941742 , 162857103 , 549945852 , 112131870 , 314633205 , 756225436 , 813355281 , 568935794 , 401345116 , 982217234 , 821701317 , 716103153 , 119371653 , 559814202 , 591519130 , 119048835 }); 
if(h==6) v= vll({13 , 733 , 31687 , 1453535 , 65805403 , 992638021 , 895650270 , 47840031 , 762860605 , 521839142 , 882891053 , 950143925 , 777101460 , 577546438 , 429520509 , 810730207 , 103274437 , 493334920 , 899105947 , 663448535 , 97377758 , 768119841 , 181983498 , 862867901 , 679009320 , 496963161 , 246401958 , 428329150 , 749936742 , 144281918 , 702713884 , 898877306 , 621339520 , 173017774 , 840516664 , 517088511 , 695660761 , 648994319 , 193655855 , 648726034 , 34433759 , 846353078 , 31122857 , 636408515 , 630269259 , 619870128 , 434229187 , 899886302 , 417167878 , 475111054 , 883120230 , 383886398 , 605860508 , 647709231 , 605675545 , 552593289 , 25821673 , 408342696 , 774621771 , 334977971 , 975616826 , 600770398 , 566368515 , 769504201 , 9949776 , 809896611 , 815153456 , 510097054 , 767497964 , 826030413 , 762750439 , 77951124 , 640895820 , 226216454 , 562402426 , 410591524 , 765816103 , 844940154 , 695006051 , 69897457 , 192549403 , 902273830 , 256988577 , 412433721 , 567949888 , 222960487 , 576231044 , 738102034 , 236435865 , 358027357 , 654675909 , 373785967 , 532469249 , 891658725 , 109502791 , 532990107 , 841601231 , 268316490 , 798650809 , 666720145 , 171168824 , 495686639 , 871573545 , 923377317 , 510315419 , 29727059 , 149741268 , 788176625 , 777206401 , 692730544 , 229783904 , 78601996 , 8256544 , 797536813 , 947527348 , 48040387 , 378656301 , 923649878 , 162983486 , 339845523 , 420722451 , 379703417 , 764652819 , 12864776 , 803087982 , 929108656 , 62557297 , 74076877 , 936152011 , 130670541 , 655088770 , 610937063 , 171388056 , 765461471 , 884072978 , 873677586 , 132619034 , 516262552 , 502114649 , 931892040 , 252090726 , 978481800 , 294390251 , 409672343 });