0pts求助
查看原帖
0pts求助
1015780
newbieTroll楼主2023/11/3 21:03
#include<bits/stdc++.h>
using namespace std;
int a[15][15],dp[20][20],last[20][20];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			cin>>a[i][j];
		} 
	}for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			for(int k=0;k<=j;++k){
				if(dp[i][j]<dp[i-1][j-k]+a[i][k]){
					dp[i][j]=dp[i-1][j-k]+a[i][k];
					last[i][j]=k;
				}
			}
		}
	}cout<<dp[n][m]<<endl;
	vector<int> v;
	int x=n,y=m;
	while(x>0){
		v.push_back(last[x][y]);
		y-=last[x][y];
		--x;
	}reverse(v.begin(),v.end());
	for(int i=1;i<=n;++i){
		cout<<i<<' '<<v[i-1]<<endl;
	}
	return 0;
}
2023/11/3 21:03
加载中...