codeforces 1512 C. A-B Palindrome(1200,回文)
2021/8/5 6:10:11
本文主要是介绍codeforces 1512 C. A-B Palindrome(1200,回文),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
链接:https://codeforces.com/problemset/problem/1512/C
题意:构造满足条件的字符串
题解:没啥解,就硬凑;具体看代码;
代码:
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { int t; cin >> t; while (t--) { int a, b, n; cin >> a >> b; n = a + b; string s; cin >> s; for (int i = 0; i < n; i++) { if (s[i] == '?')s[i] = s[n - i - 1]; } a -= count(s.begin(), s.end(), '0');//返回字符串中所有0的数量 b -= count(s.begin(), s.end(), '1');//返回字符串中所有1的数量 for (int i = 0; i <= n / 2; i++) { if (i != n - i - 1 && s[i] == '?') { if (a > 1) { s[i] = s[n - i - 1] = '0'; a -= 2; } else if (b > 1) { s[i] = s[n - i - 1] = '1'; b -= 2; } } else if (s[i] == '?')//中间位置特判 { if (a) { s[i] = '0'; a--; } else { s[i] = '1'; b--; } } } string t = s; reverse(t.begin(), t.end());//反转字符串 if (t == s && a == 0 && b == 0) cout << s << '\n'; else cout << "-1\n"; } return 0; }
这篇关于codeforces 1512 C. A-B Palindrome(1200,回文)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解
- 2024-12-25安卓NDK 是什么?-icode9专业技术文章分享
- 2024-12-25caddy 可以定义日志到 文件吗?-icode9专业技术文章分享
- 2024-12-25wordfence如何设置密码规则?-icode9专业技术文章分享
- 2024-12-25有哪些方法可以实现 DLL 文件路径的管理?-icode9专业技术文章分享
- 2024-12-25错误信息 "At least one element in the source array could not be cast down to the destination array-icode9专业技术文章分享
- 2024-12-25'flutter' 不是内部或外部命令,也不是可运行的程序 或批处理文件。错误信息提示什么意思?-icode9专业技术文章分享