P7912 为什么在用结构体数组的情况下会超时?
查看原帖
P7912 为什么在用结构体数组的情况下会超时?
574863
yhy_csp楼主2021/12/4 16:03
#include <iostream>
using namespace std;
struct node
{
	bool type;
	int f;
	int l;
};
node k[200001];
bool a[200001];
bool flag;
int n,ans;
int main()
{
	cin.tie(0);
	cout.tie(0);
	cin>>n;
 ans=n;
	int f=1,x=1;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	flag=a[1];
	for(int i=1;i<=n+1;i++)
	{
		if(a[i]!=flag)
		{

			k[x].type=flag;
			k[x].f=f;
			k[x].l=i-1;
			f=i;
			flag=!flag;
			x++;
		}
	}
	k[x].type=flag;
	k[x].f=f;
	k[x].l=n;
	//--------------------------
	int p=1;
	while(ans!=0)
	{

		while(k[p].f>k[p].l) p++;
		flag=a[k[p].f];
		cout<<k[p].f<<' ';
		k[p].f++;
 	ans--;
		for(int i=p;i<=x;i++)
		{
			if(k[i].type!=flag && (k[i].f<=k[i].l))
			{
				cout<<k[i].f<<' ';
				k[i].f++;
				ans--;
				flag=!flag;
			}
		}
		cout<<endl;
	}
	return 0;
}
2021/12/4 16:03
加载中...