• Codeforces Round #676 (Div. 2) A


    1421A. XORwice

    题目链接:Click Here

    // Author : RioTian
    // Time : 20/10/18
    #include <bits/stdc++.h>
    #define ms(a, b) memset(a, b, sizeof a)
    using namespace std;
    typedef long long ll;
    ll n, m, _;
    void solve() {
        cin >> n >> m;
        cout << (n ^ m) << endl;
    }
    int main() {
        // freopen("in.txt", "r", stdin);
        ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
        cin >> _;
        while (_--) solve();
    }
    

    1421B. Putting Bricks in the Wall

    题目链接:Click Here

    如果选择S的邻居为1,我们就可以F使为0的邻居,就没有办法从S到F,但这在最坏的情况下需要4个开关,这是不够的。 幸运的是,为了减少到2个开关,只需反过来考虑,使相邻S的正方形变为0,使相邻的正方形变为F 1。必须存在最多具有两个开关的两个正方形的解,并且您不会从S到F,因为被迫选择1(或0),并且无法通过与F相反的邻居。

    // Author : RioTian
    // Time : 20/10/18
    #include <bits/stdc++.h>
    #define ms(a, b) memset(a, b, sizeof a)
    using namespace std;
    typedef long long ll;
    ll n, m, _;
    char x[210][210];
    void solve() {
        cin >> n;
        for (int i = 1; i <= n; i++) cin >> x[i] + 1;
        int a = x[1][2] - '0', b = x[2][1] - '0', c = x[n][n - 1] - '0',
            d = x[n - 1][n] - '0';
        if (a == b && c == d && a != c)
            cout << 0 << endl;
        else if (a != b && c != d)
            cout << 2 << endl
                 << 1 << " " << 2 << endl
                 << (a == c ? n - 1 : n) << " " << (a == c ? n : n - 1) << endl;
        else if (a != b)
            cout << 1 << endl
                 << (a == c ? 1 : 2) << ' ' << (a == c ? 2 : 1) << endl;
        else if (c != d)
            cout << 1 << endl
                 << (a == c ? n : n - 1) << ' ' << (a == c ? n - 1 : n) << endl;
        else
            cout << 2 << endl << 1 << ' ' << 2 << endl << 2 << " " << 1 << endl;
    }
    int main() {
        // freopen("in.txt", "r", stdin);
        ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
        cin >> _;
        while (_--) solve();
    }
    
    #python
    import sys
    input = sys.stdin.readline
    I = lambda : list(map(int,input().split()))
    
    t,=I()
    for _ in range(t):
    	n,=I()
    	l=[input().strip() for i in range(n)]
    	an=[]
    	le=[0,0,1,1,1];p=[1,1,0,0,0]
    	rq=[l[0][1],l[1][0],l[1][1],l[2][0],l[0][2]]
    	pos=[[1,2],[2,1],[2,2],[3,1],[1,3]]
    	ct=cp=0;a1=[]
    	for i in range(5):
    		if le[i]!=int(rq[i]):
    			ct+=1
    			a1.append(pos[i])
    	for i in range(5):
    		if p[i]!=int(rq[i]):
    			cp+=1
    			an.append(pos[i])
    	if ct<=cp:
    		an=a1
    	print(len(an))
    	for i in an:
    		print(*i)
    

    1421C. Palindromifier

    题目链接:Click Here

    这道题写的挺懵的,一开始都没理解题意

    被dalao提醒以后然后发现是构造题,根据题目说的两种方案:

    对于任何字符串都可以先 $L ,i = 2 (,然后)R,i = 2 $ + (R, i = 7)。一定能构造需所需的字符串

    // Author : RioTian
    // Time : 20/10/18
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    string s;
    int main() {
        // freopen("in.txt","r",stdin);
        ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
        cin >> s;
        cout << "3
    L 2
    R 2
    ";
        cout << "R " << 2 * s.size() - 1 << endl;
    }
    
    print('3
    L 2
    R 2
    R',len(input())*2-1)
    

    1421D. Hexagons (补)

    题目链接:Click Here

    // Author : RioTian
    // Time : 20/10/18
    #include <bits/stdc++.h>
    using namespace std;
    #define ll long long
    int inf = 1e9 + 7;
    ll x, y, c1, c2, c3, c4, c5, c6;
    ll check(ll ad) {
        ll ans = 0;
        if (ad > 0)
            ans += ad * c1;
        else
            ans += -ad * c4;
        if (x - ad > 0)
            ans += (x - ad) * c6;
        else
            ans += (ad - x) * c3;
        if (y - ad > 0)
            ans += (y - ad) * c2;
        else
            ans += (ad - y) * c5;
        return ans;
    }
    void solve() {
        cin >> x >> y >> c1 >> c2 >> c3 >> c4 >> c5 >> c6;
        ll l = -inf, r = inf;
        while (l < r) {
            ll mid = l + r >> 1;
            if (check(mid) < check(mid + 1))
                r = mid;
            else
                l = mid + 1;
        }
        cout << min({check(l), check(l + 1), check(l - 1)}) << '
    ';
    }
    int main() {
        int t;
        cin >> t;
        while (t--) solve();
    }
    

    1421E. Swedish Heroes (补)

    题目链接:Click Here

  • 相关阅读:
    linux服务器git pull/push时提示输入账号密码之免除设置
    如何查看Linux发行版本
    pm2日志切割
    CentOS下配置redis允许远程连接
    Node.js对SQLite的async/await封装
    Linux 系统命令行下,对 SQLite3 数据库使用的一般操作
    CentOS 7下使用n工具更新Node.js
    英语原理,索引
    词根词缀,非核心prefix/suffix/root
    哲学家核心价值观
  • 原文地址:https://www.cnblogs.com/RioTian/p/13837925.html
Copyright © 2020-2023  润新知