hdu 2082 找单词

怎么说呢,寒假在hdu水题的时候就没想出来,谁知道这次个人赛竟然出了。(当时为什么我没做,啊啊啊!!)

比赛的时候又重新读了一边题,发现和寒假读的题有点不一样,有一丝的尴尬。看到黑猫dalaoA掉了,自己怎么想也没想出来啊(还是自己太菜了orz)

一直到第二天上午上概率论的时候,突然一道诡异的光芒在脑中闪过,发现是个dp,和完全背包很类似(比赛的时候咋就没想出来呢)然后回宿舍敲了敲,样例都没对(气哭,自己竟然这么菜)

下面是AC代码

 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 int main()
 5 {
 6     int t;
 7     scanf("%d",&t);
 8     while(t--)
 9     {
10         int a[30],dp[30][51];
11         memset(dp,0,sizeof(dp));
12         for(int i=1;i<=26;i++){
13             scanf("%d",&a[i]);
14         }
15         for(int i=0;i<=26;i++)
16                 dp[i][0]=1;
17         for(int i=1;i<=26;i++){
18             for(int j=1;j<=50;j++){
19                 for(int k=0;k<=a[i]&&j-k*i>=0;k++){
20                     dp[i][j] += dp[i-1][j-k*i];
21                 }
22             }
23         }
24         int sum=0;
25         for(int i=1;i<=50;i++){
26             sum += dp[26][i];
27         }
28         printf("%d\n",sum);
29     }
30     return 0;
31 }

 

 

posted @ 2017-06-17 21:24  啦啦啦天啦噜  阅读(146)  评论(0编辑  收藏  举报