zoukankan      html  css  js  c++  java
  • AISing Programming Contest 2021(AtCoder Beginner Contest 202) 简单题解记录

    补题链接:Here

    A - Three Dice

    水题,问给定三次摇色子的正面,请问3次结果以后相对面的点数和

    cout << (21 - a - b - c) << "
    ";
    

    B - 180°

    水题,首先反转字符串,然后遇到 6 或者9 则相互替代即可

    void solve() {
        string s;
        cin >> s;
        reverse(s.begin(), s.end());
        for (int i = 0; i < s.size(); ++i) {
            if (s[i] == '6')s[i] = '9';
            else if (s[i] == '9')s[i] = '6';
        }
        cout << s;
    }
    

    C - Made Up

    给定三个数组,请问有多少种组合使得 (A_i = B_{c_i})

    简单的数组存数问题

    int a[1 << 17], b[1 << 17];
    void solve() {
        int n; cin >> n;
        for (int i = 1, x; i <= n; ++i) {
            cin >> x;
            a[x]++;
        }
        for (int i = 1; i <= n; ++i)cin >> b[i];
        ll ans = 0;
        for (int i = 1, x ; i <= n; ++i) {
            cin >> x;
            ans += a[b[x]];
        }
        cout << ans;
    }
    

    D - aab aba baa

    这道题的写法参考了一下 繁凡さん的题解:here

    一开始没想到 DP 辅助,写了半天的纯组合问题

    ll dp[61][61];
    void solve() {
        int a, b; ll k;
        cin >> a >> b >> k;
        dp[0][0] = 1;
        for (int i = 1; i <= a + b; ++i)
            for (int j = 0; j <= i; ++j)
                dp[i][j] = dp[i - 1][j] + (j ? dp[i - 1][j - 1] : 0);
        a += b;
        ll ans = 1;
        while (a--) {
            auto x = dp[a][b];
            if (k < ans + x) cout << 'a';
            else cout << 'b', ans += x, b--;
        }
        cout << "
    ";
    }
    

    The desire of his soul is the prophecy of his fate
    你灵魂的欲望,是你命运的先知。

  • 相关阅读:
    JS函数浅析(一)
    H5_canvas与svg
    h5+js视频播放器控件
    【BZOJ3622】已经没有什么好害怕的了
    【9.29 模拟】T3 小清新最优化(easy)
    9.27模拟
    9.26 模拟
    4062 -- 【清华集训2012】串珠子
    【SNOI2017】炸弹
    P3216 [HNOI2011]数学作业
  • 原文地址:https://www.cnblogs.com/RioTian/p/14803938.html
Copyright © 2011-2022 走看看