求助玄学问题,没有用到的数组注释掉就错了
查看原帖
求助玄学问题,没有用到的数组注释掉就错了
1124546
LiHS_楼主2024/10/7 22:33

如题 40分代码:

#include<iostream>
#include<algorithm>
using namespace std;
int v[110][110];
//int c[10100][10100];
bool cmp(int x,int y){
	return x<y;
}
int dp[10010];
int main(){
	int s,n,m;
	cin>>s>>n>>m;
	for(int i=1;i<=s;i++){
		for(int j=1;j<=n;j++){
			cin>>v[j][i];
			v[j][i]=v[j][i]*2+1;
		}
	}
	for(int i=1;i<=n;i++){
		sort(v[i]+1,v[i]+s+1,cmp);
	}
	for(int i=1;i<=n;i++){
		for(int k=m;k>=0;k--){
			for(int j=1;j<=s;j++){
				if(k-v[i][j]<0)break;
				dp[k]=max(dp[k],dp[k-v[i][j]]+i*j);
			}
		}
	}
	int ans=-1;
	for(int i=0;i<=m;i++){
		ans=max(ans,dp[i]);
	}
	cout<<ans;
}

100分代码

#include<iostream>
#include<algorithm>
using namespace std;
int v[110][110];
int c[10100][10100];
bool cmp(int x,int y){
	return x<y;
}
int dp[10010];
int main(){
	int s,n,m;
	cin>>s>>n>>m;
	for(int i=1;i<=s;i++){
		for(int j=1;j<=n;j++){
			cin>>v[j][i];
			v[j][i]=v[j][i]*2+1;
		}
	}
	for(int i=1;i<=n;i++){
		sort(v[i]+1,v[i]+s+1,cmp);
	}
	for(int i=1;i<=n;i++){
		for(int k=m;k>=0;k--){
			for(int j=1;j<=s;j++){
				if(k-v[i][j]<0)break;
				dp[k]=max(dp[k],dp[k-v[i][j]]+i*j);
			}
		}
	}
	int ans=-1;
	for(int i=0;i<=m;i++){
		ans=max(ans,dp[i]);
	}
	cout<<ans;
}

两个代码之间就差了一个c数组,但是c数组整个代码中都没有用到,求助玄学问题。(也可能是脑子一热没看到

2024/10/7 22:33
加载中...