#7#8TLE求调
查看原帖
#7#8TLE求调
1019983
Czero_2023楼主2024/10/3 21:00

rt,用队列模拟每一个块,,(是队列太慢了么,,

然后能估一下时间复杂度吗,,不会估,thx

#include <iostream>
#include <queue>
#include <vector>
using namespace std;

int n,cnt=1;
queue<int> q[200001];

void init()
{
	bool type;
	for(int i=1,x;i<=n;i++)
	{
		scanf("%d",&x);
		if(i==1){
			type=x;
			q[1].push(i);
		}
		else{
			if(x==type)q[cnt].push(i);
			else{
				q[++cnt].push(i);
				type=x;
			}
		}
	}
	return ;
}

int main()
{
	cin>>n;
	init();
	while(n>0)
	{
		int lastt=-1;
		for(int i=1;i<=cnt;i++)
		{
			if(q[i].empty()||(i-lastt+1)%2==1&&lastt!=-1)continue;
			printf("%d ",q[i].front());
			q[i].pop();n--;lastt=i;
		}
		cout<<endl;
	}
	return 0;
}
2024/10/3 21:00
加载中...