比赛 20120614 评测结果 WWWWWWEEEW
题目名称 小D的背包问题 最终得分 0
用户昵称 Citron酱 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-06-14 15:49:58
显示代码纯文本
  1. #include <cstdio>
  2.  
  3. #define I_F "baga.in"
  4. #define O_F "baga.out"
  5.  
  6. const int P=997;
  7. const bool R[6][6]={{1,1,1,0,1,1},
  8. {1,0,0,1,0,0},
  9. {1,1,1,0,1,1},
  10. {1,1,1,0,1,1},
  11. {1,1,1,0,1,1},
  12. {1,1,1,1,1,1}};
  13.  
  14. long n;
  15. int ans;
  16.  
  17. void Input();
  18. void Dynap();
  19. void Output();
  20.  
  21. int main()
  22. {
  23. Input();
  24. Dynap();
  25. Output();
  26. return 0;
  27. }
  28.  
  29. void Input()
  30. {
  31. freopen(I_F,"r",stdin);
  32. scanf("%ld",&n);
  33. }
  34.  
  35. void Dynap()
  36. {
  37. int *f[6];
  38. for (short i=0; i<6; ++i)
  39. {
  40. f[i]=new int[n+1];
  41. f[i][0]=0;
  42. }
  43. f[5][0]=1;
  44. for (long i=1; i<=n; ++i)
  45. for (short j=0; j<6; ++j)
  46. {
  47. f[j][i]=0;
  48. for (short k=0; k<6; ++k)
  49. if (R[j][k])
  50. f[j][i]=(f[j][i]+f[k][i-1])%P;
  51. }
  52. ans=f[5][n];
  53. }
  54.  
  55. void Output()
  56. {
  57. freopen(O_F,"w",stdout);
  58. printf("%d\n",ans);
  59. }