为啥错了?
  • 板块P1564 膜拜
  • 楼主flywan123
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/5/31 10:56
  • 上次更新2023/11/7 01:23:47
查看原帖
为啥错了?
164227
flywan123楼主2020/5/31 10:56
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,m,a[2501]={0},jf=0;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		int yi=0,er=0;
		if(a[i]==1)
		{
			yi++;
		}
		else
		{
			er++;
		}
		if((yi>=1&&er==1)||i==n)
		{
			if(a[i+1]==1)
			{
				jf++;
				yi=0;
				er=0;
			}
			if(a[i+1]!=1)
			{
				int c=1;
				while(a[i+c]!=1&&a[i+c]!=0)
				{
					c++;
					if(c>n)
					{
						c--;
						break;
					}
				}
				if(c>yi)
				{
					jf+=2;
					c++;
					i+=c-1;
					yi=0;
					er=0;
				}
			}
			
		}
		if((er>=1&&yi==1)||i==n)
		{
			if(a[i+1]!=2)
			{
				jf++;
				yi=0;
				er=0;
			}
			if(a[i+1]!=2)
			{
				int c=1;
				while(a[i+c]!=2&&a[i+c]!=0)
				{
					c++;
					if(c>n)
					{
						c--;
						break;
					}
				}
				if(c>er)
				{
					jf+=2;
					c++;
					i+=c-1;
					yi=0;
					er=0;
				}
			}
		}
	}
	cout<<jf;
	return 0;
 } 

贪心算法 记录

2020/5/31 10:56
加载中...