80pts
查看原帖
80pts
1029690
Astellar楼主2025/1/24 09:16
#include<bits/stdc++.h>
using namespace std;
int mapp[100001][3],dp[100001][3][3];
int main() {	
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>mapp[i][0];
		cin>>mapp[i][1];
		cin>>mapp[i][2];
	}

for(int i=0;i<n;i++){
		dp[i][0][1]=mapp[i][0]+dp[i-1][1][0];
		dp[i][0][2]=mapp[i][0]+max(dp[i-1][2][0],dp[i-1][2][1]);
		dp[i][1][2]=mapp[i][1]+max(dp[i-1][2][0],dp[i-1][2][1]);
		dp[i][1][0]=mapp[i][1]+max(dp[i-1][0][2],dp[i-1][0][1]);
		dp[i][2][0]=mapp[i][2]+max(dp[i-1][0][2],dp[i-1][0][1]);
		dp[i][2][1]=mapp[i][2]+dp[i-1][1][2];
	}
	int max0,max1,max2;
	n--;
	max0=max(dp[n][0][1],dp[n][0][2]);
	max1=max(dp[n][1][2],dp[n][1][2]);
	max2=max(dp[n][2][1],dp[n][2][0]);
	int maxx=max(max0,max1);
	cout<<max(maxx,max2);
	return 0;
}
2025/1/24 09:16
加载中...