比赛 |
20120614 |
评测结果 |
WWWWWWEEEW |
题目名称 |
小D的背包问题 |
最终得分 |
0 |
用户昵称 |
Citron酱 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2012-06-14 15:49:58 |
显示代码纯文本
- #include <cstdio>
-
- #define I_F "baga.in"
- #define O_F "baga.out"
-
- const int P=997;
- const bool R[6][6]={{1,1,1,0,1,1},
- {1,0,0,1,0,0},
- {1,1,1,0,1,1},
- {1,1,1,0,1,1},
- {1,1,1,0,1,1},
- {1,1,1,1,1,1}};
-
- long n;
- int ans;
-
- void Input();
- void Dynap();
- void Output();
-
- int main()
- {
- Input();
- Dynap();
- Output();
- return 0;
- }
-
- void Input()
- {
- freopen(I_F,"r",stdin);
- scanf("%ld",&n);
- }
-
- void Dynap()
- {
- int *f[6];
- for (short i=0; i<6; ++i)
- {
- f[i]=new int[n+1];
- f[i][0]=0;
- }
- f[5][0]=1;
-
- for (long i=1; i<=n; ++i)
- for (short j=0; j<6; ++j)
- {
- f[j][i]=0;
- for (short k=0; k<6; ++k)
- if (R[j][k])
- f[j][i]=(f[j][i]+f[k][i-1])%P;
- }
- ans=f[5][n];
- }
-
- void Output()
- {
- freopen(O_F,"w",stdout);
- printf("%d\n",ans);
- }