3 solutions
-
1
from 别人的题解
#include<bits/stdc++.h> using namespace std; int v,n,t; int w[1001],a[1001][32],c[1001],f[201]; int main(){ scanf("%d%d%d",&v,&n,&t); for (int i=1;i<=n;i++){ int p; scanf("%d%d%d",&w[i],&c[i],&p); a[p][++a[p][0]]=i; } for (int p=1;p<=t;p++) for(int j=v;j>=0;j--) for(int i=1;i<=a[p][0];i++){ if(j>=w[a[p][i]]){ int tmp=a[p][i]; if(f[j]<f[j-w[tmp]]+c[tmp]) f[j]=f[j-w[tmp]]+c[tmp]; } } printf("%d",f[v]); }
Information
- ID
- 757
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 48
- Accepted
- 18
- Uploaded By