大家好,我非常喜欢搜索,于是我用搜索过了此题
,每组选一件物品或不选,这不是纯纯的搜索题吗 。枚举每组应该选哪件物品即可.
#include<bits/stdc++.h>
using namespace std;
struct node{
int w,v;
};
vector<node> vec[15];
int ans=0;
int V,N,T;
void dfs(int level,int alw,int alv){
if(level>T){
ans=max(ans,alv);
return;
}
for(int i=0;i<vec[level].size();i++){
if(alw+vec[level][i].w<=V){
dfs(level+1,alw+vec[level][i].w,alv+vec[level][i].v);
}
}
dfs(level+1,alw,alv);
}
int main(){
cin>>V>>N>>T;
for(int i=1;i<=N;i++){
int q;
node t;
cin>>t.w>>t.v>>q;
vec[q].push_back(t);
}
dfs(1,0,0);
cout<<ans<<endl;
return 0;
}
(59ms,慢的很