求助 70pts 有枚举 奇奇怪怪的错
查看原帖
求助 70pts 有枚举 奇奇怪怪的错
708963
WaterSky楼主2023/11/25 10:17
#include<bits/stdc++.h>
using namespace std;
long long n,maxx;
long long a[100005][5];
long long dp[100005][5][5];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i][1]>>a[i][2]>>a[i][3];
    for(int J=1;J<=3;J++)
    {
        for(int i=1;i<=3;i++)
            for(int k=1;k<=2;k++)
                dp[1][i][k]=0;
        dp[1][J][1]=a[1][J];
		dp[1][J][2]=a[1][J];
		for(int i=2;i<=n;i++)
		{
			dp[i][1][1]=max(dp[i-1][2][2],dp[i-1][3][2])+a[i][1];
			dp[i][2][1]=dp[i-1][3][2]+a[i][2];
			dp[i][2][2]=dp[i-1][1][1]+a[i][2];
			dp[i][3][2]=max(dp[i-1][2][1],dp[i-1][1][1])+a[i][3];
		}
		for(int i=1;i<=J;i++)
            maxx=max(maxx,dp[n][i][1]);
        for(int i=3;i>=J;i--)
            maxx=max(maxx,dp[n][i][2]);
	}
	cout<<maxx<<endl;
	return 0;
}
2023/11/25 10:17
加载中...