[构造] aw3764. 三元数异或(贪心+模拟)

Posted Ypuyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[构造] aw3764. 三元数异或(贪心+模拟)相关的知识,希望对你有一定的参考价值。

1. 题目来源

链接:3764. 三元数异或

2. 题目解析

贪心题目。

构造出最大值最小的 ab,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. 三元数异或(贪心+模拟)的主要内容,如果未能解决你的问题,请参考以下文章

[构造] aw3767. 最小的值(贪心+模拟)

POJ 3764 The xor-longest Path (字典树)

POJ 3764 (异或+字典树)

BZOJ 2460 元素(贪心+线性基)

p4551(poj3764) 最长异或路径

《算法竞赛进阶指南》0x16Trie POJ3764异或最大路径