hdu 2126 求方案数

来源:互联网 发布:社交网络的好处知乎 编辑:程序博客网 时间:2024/05/23 10:50
#include<cstdio>#include<algorithm>#include<cstring>#define MAX(x,y) ((x)>(y)?(x):(y))using namespace std;int dp[5050][2];int w[1000];int main(){int n,col,T;scanf("%d",&T);while(T--){scanf("%d%d",&n,&col);for(int i=1;i<=n;i++)scanf("%d",&w[i]);for(int i=0;i<=col;i++){dp[i][0]=0;dp[i][1]=1;}for(int i=1;i<=n;i++){for(int j=col;j>=w[i];j--){if(dp[j][0]<dp[j-w[i]][0]+1){dp[j][0]=dp[j-w[i]][0]+1;dp[j][1]=dp[j-w[i]][1]; }else{if(dp[j][0]==dp[j-w[i]][0]+1){dp[j][1]=dp[j][1]+dp[j-w[i]][1];}}}}if(dp[col][0])printf("You have %d selection(s) to buy with %d kind(s) of souvenirs.\n",dp[col][1],dp[col][0]);elseprintf("Sorry, you can't buy anything.\n"); }}

0 0
原创粉丝点击