返回顶部

Codeforces Global Round 9 A. Sign Flipping (构造)

  • 题意:有一个长度为\(n\)(odd)的序列,可以更改所有的数的正负,要求最少\(\frac{n-1}{2}\)\(a_{i+1}-a_i\ge0\),并且要求最少\(\frac{n-1}{2}\)\(a_{i+1}-a_{i}\le0\),求更改后的序列.

  • 题解:因为\(n\)是奇数,并且随便改正负,那我们直接构造正负正负.....正负这样的就可以了.

  • 代码:

    int t;
    int n;
    int a[N];
     
    int main() {
        ios::sync_with_stdio(false);cin.tie(0);
      	cin>>t;
      	 while(t--){
      	 	cin>>n;
      	 	 for(int i=1;i<=n;++i){
      	 	 	cin>>a[i];
      	 	 	if(i%2==1){
      	 	 		a[i]=abs(a[i]);
      	 	 	}
      	 	 	else{
      	 	 		if(a[i]>=0){
      	 	 			a[i]=-a[i];
      	 	 		}
      	 	 	}
      	 	 	cout<<a[i]<<" ";
      	 	 }
      	 	 cout<<endl;
      	 }
     
        return 0;
    }
    
posted @ 2020-07-07 13:42  Rayotaku  阅读(179)  评论(0)    收藏  举报