[构造] aw3764. 三元数异或(贪心+模拟)
Posted Ypuyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[构造] aw3764. 三元数异或(贪心+模拟)相关的知识,希望对你有一定的参考价值。
1. 题目来源
链接:3764. 三元数异或
2. 题目解析
贪心题目。
构造出最大值最小的 a
、b
,0 的话就平分,2 的话先平分,如果当 a>b
的话,那就让已经大的 a
尽量小,将 1 分给 b
,2 也直接分给 b
。针对 1 的话第一次将 1 分给 a
,那就认为 a>b
了。
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( n ) O(n) O(n)
注意下,没有空格隔开的元素,就是 char
图,直接按行读入即可,char
数组自己分割。
#include <bits/stdc++.h>
using namespace std;
int n;
string s;
int main() {
int T; cin >> T; while (T -- ) {
cin >> n >> s;
string a, b;
bool flag = true;
for (auto &c : s) {
if (flag) {
if (c == '2') a += '1', b += '1';
else if (c == '1') a += '1', b += '0', flag = false;
else a += '0', b += '0';
} else {
if (c == '2') a += '0', b += '2';
else if (c == '1') a += '0', b += '1';
else a += '0', b += '0';
}
}
cout << a << endl;
cout << b << endl;
}
return 0;
}
以上是关于[构造] aw3764. 三元数异或(贪心+模拟)的主要内容,如果未能解决你的问题,请参考以下文章