1 条题解
-
0
C++ :
#include<bits/stdc++.h> #define C c=getchar() using namespace std; int i,j,k,n,m,tot,ans,t; int f[1005],h[105],v[105]; int read(){ char c;int x;while(C,c<'0'||c>'9');x=c-'0'; while(C,c>='0'&&c<='9') x=x*10+c-'0';return x; } int maxn(int a,int b){return a>b?a:b;} int minn(int a,int b){return a<b?a:b;} int main() { //freopen("cheese.in","r",stdin);freopen("cheese.out","w",stdout); n=read();t=read();k=read(); for(int i=1;i<=n;i++){ v[i]=read(); h[i]=read(); } for(int i=1;i<=n;i++) if(h[i]<k) for(int j=h[i];j<=t;j++) f[j]=maxn(f[j],f[j-h[i]]+v[i]); for(int i=0;i<=t;i++) ans=maxn(ans,f[i]); for(int i=1;i<=n;i++) for(int j=h[i]*4/5;j<=t;j++) f[j]=maxn(f[j],f[j-h[i]*4/5]+v[i]); for(int i=1;i<=n;i++) if(h[i]>=k) for(int j=h[i];j<=t;j++) ans=maxn(ans,f[j-h[i]]+v[i]); printf("%d",ans); return 0; }
- 1
信息
- ID
- 1239
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者