关于我不懂就认为是玄学的那件事
查看原帖
关于我不懂就认为是玄学的那件事
215389
我是大帅逼69楼主2020/5/19 23:32

有个问题,我没想明白这样做我觉得是对的,但是没有把1和n单独拉出来判断就会wa三个点.单独拿出来就能ac ,但是因为是偶数的原因所以我觉得不用单独判断呀,为什么会错

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cmath>
#include<map>
#include<queue> 
#include<set>
#include<stack>
using namespace std;
const int INF=100010;
int a[INF][3],f[INF][4];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<3;j++)
		{
			cin>>a[i][j];
		}
	}
	memset(f,0,sizeof(f));
	for(int i=1;i<=n;i++)
	{
		f[i][0]=max(f[i-1][1],f[i-1][3])+a[i][0];
		f[i][1]=f[i-1][0]+a[i][1];
		f[i][2]=f[i-1][3]+a[i][1];
		f[i][3]=max(f[i-1][2],f[i-1][0])+a[i][2];
	}
	int maxn=0;
	for(int i=0;i<4;i++)
	{
		maxn=max(f[n][i],maxn);
	}
	cout<<maxn;
}
2020/5/19 23:32
加载中...