特殊性质WA求助
查看原帖
特殊性质WA求助
690333
qinghaipeng楼主2023/10/14 20:58
#include<iostream>
#include<cstdio>
#include<iomanip>
#include<memory.h>
#include<cstdlib>
#include<ctime>
#include<climits>
#include<cctype>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<set>
#include<bitset>
#include<map>
#include<unordered_map>
#include<stack>
#include<vector>
#include<queue>
#include<deque>
#include<list>
#include<utility>
//#include<Windows.h>
#define bug puts("liupei")
#define int long long
#define F(i,j,n) for(register int i=j;i<=n;++i)
#define R(i,j,n) for(register int i=j;i>=n;--i)
#define MAX_TIME 0.95
#define pii pair<int,int>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define lc (p<<1)
#define rc (p<<1|1)
using namespace std;
const int N=1e5+50;
const bool debug=0;
const int mod=998244353;
int n;
bool a[N];
inline void doit(int x){
	reverse(a+1,a+1+x);
	F(i,1,x)a[i]^=1;
	return;
}
signed main() {
	srand(time(0));
	if(debug){
		freopen("2.in","r",stdin);
	}
	scanf("%lld",&n);
	F(i,1,n)cin>>a[i];
	bool flag=1;
	F(i,1,n){
		if(a[i]!=0){
			flag=0;
		}
	}
	if(flag){
		F(i,1,(n+1)/2){
			printf("1 ");
		}
		F(i,1,floor(n/2)){
			printf("0 ");
		}
		return 0;
	}
	F(i,1,n){
		doit(i);//不是交替进行的 
		if(debug){
			cout<<"第 "<<i<<" 次操作后: ";
			F(i,1,n)cout<<a[i]<<" ";
			puts("");
		}
	}
	F(i,1,n)cout<<a[i]<<" ";
	return 0;
}

TLE的那些不管它(蒟蒻确实不会 Θ(n)\Theta(n) )的做法。

2023/10/14 20:58
加载中...