求这个代码的时间复杂度
查看原帖
求这个代码的时间复杂度
539495
what_else楼主2022/3/29 18:16

为什么这个代码只得了6060?其他全TLETLE,求助

#include<bits/stdc++.h>
using namespace std;
struct nod{
	bool num;int f,e;
};
struct nod s[200010];
int n,start=1,start2;
bool d;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&s[i].num);
		s[i].f=i-1;s[i].e=i+1;
	}//创立节点 
	s[0].e=1;s[n+1].f=n; 
	while(1){
		d=s[s[0].e].num;
		start=s[0].e;
		start2=start;
		while(1){
			if(d!=s[start2].num){
				s[s[start].f].e=s[start].e;
				s[s[start].e].f=s[start].f;
				printf("%d ",start);
				d=s[start2].num;
				start=start2;
			}
			if(s[start].e==s[start].f)break;
			start2=s[start2].e;
			if(start2==n+1){
				s[s[start].f].e=s[start].e;
				s[s[start].e].f=s[start].f;
				printf("%d ",start);
				break;
			}
		}
		printf("\n");
		
		if(s[start].e==s[start].f)break;
	}
}
2022/3/29 18:16
加载中...