• Codeforces Round #722 (Div. 2)


    Codeforces Round #722 (Div. 2)

    A - Eshag Loves Big Arrays

    int main() {
        IOS;
        for (cin >> _; _; --_) {
            cin >> n; map<int, int> st;
            rep (i, 1, n) cin >> m, ++st[m];
            cout << n - st.begin()->second << '
    ';
        }
        return 0;
    }
    

    B - Sifid and Strange Subsequences

    int main() {
        IOS;
        for (cin >> _; _; --_) {
            cin >> n;
            rep (i, 1, n) cin >> a[i];
            sort(a + 1, a + 1 + n);
            int cnt = upper_bound(a + 1, a + 1 + n, 0) - a - 1;
            int cnt0 = cnt - (upper_bound(a + 1, a + 1 + n, -1) - a - 1);
            m = 2e9;
            rep (i, 1, cnt - cnt0) umin(m, a[i + 1] - a[i]);
            k = a[upper_bound(a + 1, a + 1 + n, m) - a - 1];
            cout << max(cnt, cnt - cnt0 + (cnt0 != 0) + (k > 0 && k <= m)) << '
    ';
        }
        return 0;
    }
    

    C - Parsa's Humongous Tree

    取中间是使得绝对值差最小, 显然取两端使得绝对值差最大

    每个点要么选(l), 要么选(r), 典型的树形dp

    int l[N], r[N];
    ll f[N][2]; 
    VI h[N];
    
    void dfs(int x, int fa) {
        for (auto &y : h[x]) if (y ^ fa) {
            dfs(y, x);
            f[x][0] += max(f[y][0] + abs(l[x] - l[y]), f[y][1] + abs(l[x] - r[y]));
            f[x][1] += max(f[y][0] + abs(r[x] - l[y]), f[y][1] + abs(r[x] - r[y]));
        }
    }
    
    int main() {
        IOS;
        for (cin >> _; _; --_) {
            cin >> n;
            rep (i, 1, n) cin >> l[i] >> r[i], clear(h[i]), f[i][0] = f[i][1] = 0;
            rep (i, 2, n) {
                int u, v; cin >> u >> v;
                h[u].pb(v); h[v].pb(u);
            }
            dfs(1, 0);
            cout << max(f[1][0], f[1][1]) << '
    ';
        }
        return 0;
    }
    

    D - Kavi on Pairing Duty

    对于不交叉, 也不包含的, 就是找(n)的因子个数即可,

    否则链接(1, n), 相当于少了(2)个点, 也就变成了(n - 1)

    dp完事

    ll f[N], s;
    
    int main() {
        IOS; cin >> n;
        rep (i, 1, n) for (int j = i; j <= n; j += i) ++f[j];
        rep (i, 1, n) {
            f[i] = (f[i] + s) % mod;
            s = (s + f[i]) % mod;
        }
        cout << f[n];
        return 0;
    }
    
  • 相关阅读:
    HSL制作配色表
    css3 text-overflow制作固定区域的博客列表
    git 安装
    mailto: HTML e-mail 链接
    Sublime Text2 新建文件快速生成Html头部信息和炫酷的代码补全
    Git教程
    javscript 一些常用的工具方法
    LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式 的解决方法
    Dictionary and KeyValuePair关系
    C# 类动态添加属性、方法
  • 原文地址:https://www.cnblogs.com/2aptx4869/p/14810680.html
Copyright © 2020-2023  润新知