UVA 12563 "Jin Ge Jin Qu hao" (背包)

传送门

debug了好一会,突然发现,输出错了,emmm.........

明天再写debug历程

贴身ac代码先

 1 #include<bits/stdc++.h>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 #define memF(a,b,n) for(int i=0;i <= n;a[i++]=b);
 6 const int maxn=1e5+50;
 7 
 8 int n,T;
 9 int t[60];
10 int dp[maxn];
11 
12 void Solve()
13 {
14     memF(dp,-1,T);
15     dp[0]=0;
16     for(int i=1;i <= n;++i)
17     {
18         for(int j=T-1;j >= t[i];--j)
19         {
20             if(dp[j-t[i]] != -1)
21                 dp[j]=max(dp[j],dp[j-t[i]]+1);
22         }
23     }
24     int ans=*max_element(dp,dp+T-1);
25     for(int i=T-1;i >= 0;--i)
26         if(dp[i] == ans)
27         {
28             printf("%d %d\n",dp[i]+1,i+678);
29             return ;
30         }
31 }
32 int main()
33 {
34     int test;
35     scanf("%d",&test);
36     for(int kase=1;kase <= test;++kase)
37     {
38         scanf("%d%d",&n,&T);
39         for(int i=1;i <= n;++i)
40             scanf("%d",t+i);
41 
42         printf("Case %d: ",kase);
43         Solve();
44     }
45     return 0;
46 }
View Code

猜你喜欢

转载自www.cnblogs.com/violet-acmer/p/10961558.html