是数据有点水吗,爆搜都能过。
查看原帖
是数据有点水吗,爆搜都能过。
695194
Lucyna_Kushinada楼主2022/10/30 10:04

AC码子

#include<bits/stdc++.h>
using namespace std;
int bw,n;
int a[1005],b[1005],c[1005];
bool f[1005];
int dfs(int t,int w,bool g[1005]){
	bool p[1005];for(int i=0;i<n;i++)p[i]=g[i];
	if(t>n)return 0;
	int s=0,s1=0;
	s=dfs(t+1,w,g);
	if(!g[c[t]]&&w>=a[t]){
		p[c[t]]=1;
		s1=dfs(t+1,w-a[t],p)+b[t];
	}
	return max(s1,s);
}
int main(){
	cin>>bw>>n;
	for(int i=1;i<=n;i++)cin>>a[i]>>b[i]>>c[i];
	cout<<dfs(1,bw,f);
	return 0;
}

2022/10/30 10:04
加载中...