Codeforces Round 772 发表于 2022-03-10 | 分类于 codeforce | 阅读次数: | Codeforces Round #772 (Div. 2)比赛链接 A:Min Or Sum1234567891011121314151617181920212223#include <iostream>#include <vector>using namespace std;int main(){ int t; cin >> t; while(t--) { int n; cin >> n; vector<int>vec; int ans = 0; for (int i = 0; i < n; i++) { int x; cin >> x; ans = ans|x; } cout << ans << endl; } return 0;} B:Avoid Local Maximums1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include <iostream>#include <vector>#include <math.h>using namespace std;int main(){ int t; cin >> t; int n; int ans; vector<int>vec; //存当前数据 vector<int>sign;//标记 while(t--) { cin >> n; vec.clear(); sign.clear(); ans = 0; //答案 for (int i = 0; i < n; i++) { int x; cin >> x; vec.push_back(x); sign.push_back(0); } //计算标记数组 for (int i = 1; i < n - 1; i++) { if(vec[i] > vec[i-1] && vec[i] > vec[i+1]) { sign[i] = 1; } } for (int i = 1; i < n - 1; i++) { if(sign[i]) { if(i+2< n && sign[i+2]) { ans ++; vec[i+1] = max(vec[i], vec[i+2]); sign[i+2] = 0; sign[i] = 0; } else { ans ++; vec[i] = max(vec[i-1], vec[i+1]); sign[i] = 0; } } } cout << ans << endl; for (int i = 0; i < n - 1; i++) { cout << vec[i] << " "; } cout << vec[n-1]<< endl; } return 0;} C:Differential Sorting12345678910111213141516171819202122232425262728293031323334#include <iostream>#include <bits/stdc++.h>#include <map>#include <algorithm>using namespace std;int main(){ int t; cin >> t; while (t--) { int n; vector<int>vec; cin >> n; for (int i = 0; i < n; i++) { int tmp; cin >> tmp; vec.push_back(tmp); } if(vec[n-2] <= vec[n-1] && vec[n-1] >= 0) { cout << n - 2 << endl; for(int i = 0; i < n-2; i++) { cout << i + 1 << " " << n-1 << " " << n << endl; } }else if(is_sorted(vec.begin(), vec.end())) { cout << "0" << endl; } else { cout << "-1" << endl; } } return 0;}