简单dp求条
查看原帖
简单dp求条
571265
Infinity_Fantasy楼主2024/6/10 18:23

样例没过qwq

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,ans,a[105][105],f[105][105][105];
signed main(){
	cin>>n>>m;m=min(m,n);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=i;j++)
			cin>>a[i][j];
	for(int i=1;i<=n;i++)
		for(int j=1;j<=i;j++)
			f[i][j][0]=max(f[i-1][j][0],f[i-1][j-1][0])+a[i][j];
	for(int k=1;k<=m;k++)
		for(int i=1;i<=n;i++)
			for(int j=1;j<=i;j++)
				f[i][j][k]=max(max(f[i-1][j][k-1],f[i-1][j-1][k-1])+a[i][j]*3,max(f[i-1][j][k],f[i-1][j-1][k]));
	ans=-1e18;
	for(int i=1;i<=n;i++) 
		for(int j=1;j<=m;j++)
			ans=max(ans,f[n][i][j]);
	cout<<ans;
	return 0;
}
2024/6/10 18:23
加载中...