求助巨佬,,,这个复杂度因该没有O(n^2)但还是爆了
查看原帖
求助巨佬,,,这个复杂度因该没有O(n^2)但还是爆了
848514
zgr20090920楼主2024/10/25 00:15
#include <bits/stdc++.h>
#define ll long long 
using namespace std;
struct df{
	int cod;
	int num;
};
int n,m,r[200005],tmp,p,cnt;
df f[3][200005];
int main()
{
//	freopen("fruit3.in","r",stdin);
//	freopen("fruit3.in","w",stdout);
	scanf("%d",&n);
	m=n;
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&f[1][i]);
		f[1][i].num=i;
	}
    while(n!=0)
    {
    	p++;
    	tmp=0;
        bool o=0,a=0;
        for(int i=1;i<=m;i++)
        {
        	cnt++;
        	if(f[p%2][i].cod==1&&a==0)
        	{
        		o=0;
        		a=1;
        		f[p%2][i].cod=-1;
        		printf("%d ",f[p%2][i].num);
        	//	f[i]=-1;
        		n--;
			}
			else
			if(f[p%2][i].cod==0&&o==0)
			{
			//	r[++tmp]=i;
			    f[p%2][i].cod=-1;
				a=0;
				o=1;
				printf("%d ",f[p%2][i].num);
				//cout<<f[p%2][i].num<<" ";
			//	f[p%2][i]=-1;
				n--;
			}
			if(f[p%2][i].cod!=-1)
			{
			//	cout<<f[p%2][i].cod<<" ";
			    tmp++;
				f[(p+1)%2][tmp].cod=f[p%2][i].cod;
				f[(p+1)%2][tmp].num=f[p%2][i].num;
			}
			//cout<<f[(p)%2][i].cod<<" ";
		}
		m=n;
		printf("\n");
	}
//	cout<<cnt;
	return 0;
 } 
 /*
 1 1 0 0 1 1 1 0 1 1 0 0
 1   3   5     8 9   11
 1 0 1 1 1 0
 1 2 3 4 5 6 
 0 1
 */
2024/10/25 00:15
加载中...