1 条题解
-
0
C++ :
#include<cstdio> #include<cstring> using namespace std; int t[110000]; int f[110000]; int mymax(int x,int y) { return x>y?x:y; } int main() { int n,T; while(scanf("%d%d",&n,&T)!=EOF) { for(int i=1;i<=n;i++) scanf("%d",&t[i]); memset(f,-1,sizeof(f)); f[0]=0; for(int i=1;i<=n;i++) { for(int j=T;j>=t[i];j--) { if(f[j-t[i]]!=-1) { f[j]=mymax(f[j],f[j-t[i]]+t[i]); } } } int ans=0; for(int i=1;i<=T;i++) ans=mymax(ans,f[i]); printf("%d\n",ans); } return 0; }
- 1
信息
- ID
- 2574
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者