A了但有异或(疑惑)
查看原帖
A了但有异或(疑惑)
970394
htlhtlhtl楼主2024/8/29 15:10

如下是我的代码:

#include<bits/stdc++.h>
using namespace std;
int f[505][1005];
int c[105],x[105],y[105];
int n,v;
int main(){
//	freopen("N1.txt","r",stdin);
	cin>>n>>v;
	for(int i=1;i<=n;++i) cin>>c[i]>>x[i]>>y[i];
	memset(f,-0x7f,sizeof(f));
	f[0][500]=0;
	for(int k=1;k<=n;++k){
		for(int i=v;i>=c[k];--i){
			if(x[k]>0){
				for(int j=min(1000,1000+x[k]);j>=max(0,x[k]);--j){
					f[i][j]=max(f[i][j],f[i-c[k]][j-x[k]]+y[k]);
				}
			}
			else{
				for(int j=max(0,x[k]);j<=min(1000,1000+x[k]);++j){
					f[i][j]=max(f[i][j],f[i-c[k]][j-x[k]]+y[k]);
				}
			}
		}
	}
	int ans=-1e8;
	for(int i=0;i<=v;++i){
		for(int j=500;j<=1000;++j) ans=max(ans,f[i][j]);
	}
	cout<<max(ans,-1);
    return 0;
}

可以看到我对小明的喜爱度为正/负做了分类讨论,但当我不分类,统一倒着枚举时仍然AC,是数据过水还是本来就没有影响?

2024/8/29 15:10
加载中...