20分求助
查看原帖
20分求助
820948
qbhswmy楼主2023/1/29 16:52

rt,代码交上去发现20分,翻了翻讨论区发现可能不用把机器分配完,就改了代码,然后光荣10分了(还是说收益一定是递增的?)今天的数据下载完了(,明天看看数据

代码

#include <bits/stdc++.h>
using namespace std;
int f[16][11]={0},v[16][11]={0},cn=0,mn=0,maxn=0,maxm=0,m[16],ans[16][11]={0};
void print(int c,int m){
	if(c!=1) print(c-1,m-ans[c][m]);
	cout<<c<<' '<<ans[c][m]<<endl;
}
int main(){
	cin>>cn>>mn;
	int lc=0;
	for(int i=1;i<=cn;i++){
		for(int j=1;j<=mn;j++){
			scanf("%d",&v[i][j]); 
		}
	}
	for(int i=0;i<=mn;i++){
		f[1][i]=v[1][i];
		ans[1][i]=i;
	}
	for(int i=2;i<=cn;i++){
		lc=i-1;
		for(int j=0;j<=mn;j++){
			maxn=0;
			for(int k=0;k<=j;k++){
				if((f[lc][j-k]+v[i][k])>maxn){
					maxn=f[lc][j-k]+v[i][k];
					ans[i][j]=k;
				}
			}
			f[i][j]=maxn;
		}
	}
	cout<<f[cn][mn]<<endl;
	print(cn,mn);
	return 0;
}
2023/1/29 16:52
加载中...