1 solutions
-
0
这题是个完全背包,题目多
#include <bits/stdc++.h> using namespace std; #define ll long long const ll N = 1e8+10; const ll M = 1e6+10; int f[N]; int main(){ int n,m,V,g=0,fa=0; cin>>n>>m>>V; for(int i=0;i<n;i++){ int v,w,s; cin>>v>>w>>s; if(s==-1){ for(int j=v;j<=V;j++){ f[j]=max(f[j],f[j-v]+w); } } else if(s==0&&v==0){ if(w>g) g=w; } else if(v==0&&s==1){ if(w>fa) fa=w; } } if(f[V]+g>=m+fa) cout<<f[V]+g<<" "<<m+fa<<endl<<"泪目"<<endl; else cout<<f[V]+g<<" "<<m+fa<<endl<<"优雅"<<endl; return 0; }
Information
- ID
- 6549
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- # Submissions
- 14
- Accepted
- 4
- Uploaded By