社区讨论

求大佬看一下状转

P1005[NOIP 2007 提高组] 矩阵取数游戏参与者 3已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@mi86appy
此快照首次捕获于
2025/11/21 09:19
4 个月前
此快照最后确认于
2025/11/21 09:19
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
const int maxs=80+3;
long long n,m,ans=0;
long long a[maxs][maxs];
long long f[maxs][maxs][maxs];
long long max(long long x,long long y){return x>y?x:y;};
long long Pow(int x)
{
	if(x<=0) return 1;
	long long num=1;
	while(x--) num*=2;
	return num;
}
int main()
{
	memset(f,0,sizeof(f));
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			scanf("%lld",&a[i][j]);
	for(int i=1;i<=n;i++)
	{
		for(int j=m;j>=1;j--)
	 		for(int k=j;k<=m;k++)
	 			f[i][j][k]=max(f[i][j+1][k]+a[i][j]*Pow(k-j+1),f[i][j][k-1]+a[i][k]*Pow(k-j+1));
	}
	for(int i=1;i<=n;i++) ans+=f[i][1][m];
	cout<<ans<<endl;
	return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...