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; }
𝓐𝓬𝓱𝓲𝓮𝓿𝓮𝓶𝓮𝓷𝓽 𝓹𝓻𝓸𝓿𝓲𝓭𝓮𝓼 𝓽𝓱𝓮 𝓸𝓷𝓵𝔂 𝓻𝓮𝓪𝓵
𝓹𝓵𝓮𝓪𝓼𝓾𝓻𝓮 𝓲𝓷 𝓵𝓲𝓯𝓮