Practice.
A. Technical Support
题意
给定一个由
思路
如题,配对即可。
时间复杂度:
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
const int N = 2e5 + 10, inf = LONG_LONG_MAX, mod = 998244353;
signed main() {
ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
int q;
cin >> q;
while(q --){
int n;
cin >> n;
string s;
cin >> s;
int cnt = 0;
for(char e : s) {
cnt += e == 'Q' ? 1 : -1;
if(cnt < 0) cnt = 0;
}
cout << (cnt == 0 ? "Yes\n" : "No\n");
}
}
别看错题((
B. Kevin and Permutation
题意
给定整数
思路
想要尽量让差值最大,那么我们只有相间地输出,或者说,若我们按
可以贪心地认为上述的思路是正确的,解法不唯一。
时间复杂度:
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
const int N = 2e5 + 10, inf = LONG_LONG_MAX, mod = 998244353;
signed main() {
ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
int q;
cin >> q;
while(q --){
int n;
cin >> n;
for(int i=1;i<=n/2;i++){
cout << n / 2 + i << ' ' << i << ' ';
}
if(n % 2 == 1) cout << n;
cout << '\n';
}
}
找规律+乱贪.jpg
C1. Make Nonzero Sum (easy version)
详见C2,区别是C1给定的数组没有0
C2. Make Nonzero Sum (hard version)
题意
给定一个由
思路
首先,我们不考虑运算符号的时候,将所有数加起来会得到一个结果
显然,若要让
所以我们只需将
有趣的是,这种解法不用考虑是否包含
时间复杂度:
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
const int N = 2e5 + 10, inf = LONG_LONG_MAX, mod = 998244353;
int a[N];
signed main() {
ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
int q;
cin >> q;
while(q --){
int n;
cin >> n;
int ans = 0;
for(int i=1;i<=n;i++){
cin >> a[i];
ans += a[i];
}
if(abs(ans) % 2 == 1) cout << -1 << '\n';
else{
int r = 0;
vector<pii> out;
int left = ans / 2;
if(left != 0) {
int x = left / abs(left);
r = 1;
for (int i = 1; i < n; i++) {
if (a[i + 1] == x) {
out.emplace_back(i, i + 1);
r = i + 1;
i++;
left -= x;
if (left == 0) break;
} else {
out.emplace_back(i, i);
r = i;
}
}
}
for(int i=r+1;i<=n;i++) out.emplace_back(i, i);
if(left != 0) cout << -1 << '\n';
else{
cout << out.size() << '\n';
for(auto e : out) cout << e.first << ' ' << e.second << '\n';
}
}
}
}
想了半天不小心把两个难度一起做了((
- 本文链接 https://floating-ocean.github.io/blog_old/posts/64163075/
- 版权声明 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!