问题出在哪?
  • 板块P1544 三倍经验
  • 楼主zMinYu
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/7/22 08:22
  • 上次更新2023/11/3 08:19:53
查看原帖
问题出在哪?
882092
zMinYu楼主2023/7/22 08:22
#include<bits/stdc++.h>
using namespace std;
const int N=105,K=100*101/2+100;
int n,k;
int a[N][N];
int dp[N][N][K];
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=i;j++)
		{
			cin>>a[i][j];
		}
	}
	memset(dp,-1,sizeof(dp));
	dp[1][1][0]=a[1][1];
	dp[1][1][1]=a[1][1]*3;
	for(int i=2;i<=n;i++)
	{
		for(int j=1;j<=i;j++)
		{
			for(int l=0;l<=k;l++)
			{
				dp[i][j][l]=max(dp[i-1][j][l],dp[i-1][j-1][l])+a[i][j];
			}
			for(int l=1;l<=k;l++)
			{
				dp[i][j][l]=max(dp[i-1][j][l-1],dp[i-1][j-1][l-1])+a[i][j]*3;
			}
		}
	}
	int ans=-1;
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<=k;j++)
		ans=max(dp[n][i][k],ans);
	}
	cout<<ans;
	return 0;
}
2023/7/22 08:22
加载中...