• [Contest]2017 ACM/ICPC Asia Regional Xian Online(施工中...)


    A. Tree

    题意

    题解

    代码

    
    

    B. Coin

    题意

    给定抛一枚硬币向上的概率是$frac{q}{p}(frac{q}{p}leq frac{1}{2})$,求抛$k$次向上次数为偶数的概率。

    题解

    首先$res=sum_{i=0}{frac{k}{2}}{inom{k}{2i}(frac{q}{p}){2i}(1-frac{q}{p})^{k-2i}}$。
    然后我们发现它其实是$f(x)=(frac{q}{p}x+
    (1-frac{q}{p}))k$的偶数项之和,故$res=frac{f(-1)+f(1)}{2}=frac{1}{2}(1-(frac{p-2q}{p})k)$。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    
    const ll Q = 1e9+7;
    
    inline ll read() {
        ll s = 1, x = 0; char ch = getchar();
        while (ch < '0' || ch > '9') {if (ch == '-') s = -1; ch = getchar();}
        while (ch >= '0' && ch <= '9') {x = x * 10 + ch - '0'; ch = getchar();}
        return s * x;
    }
    
    inline ll power(ll x, ll n) {
        ll ret = 1;
        while (n) {
            if (n & 1) ret *= x, ret %= Q;
            x *= x, x %= Q;
            n >>= 1;
        }
        return ret;
    }
    
    int main() {
        ll T = read();
        while (T--) {
            ll p = read(), q = read(), k = read();
            printf("%lld
    ", ((power(p, k) + power(p - 2ll * q, k)) % Q * power(2ll, Q - 2)) % Q * power(power(p, k), Q - 2) % Q);
        }
        return 0;
    }
    

    C. Sum

    题意

    给定一个正整数$x$,求一个位数不超过$2000$的正整数$k$,使得$k imes x$的十进制位之和是$233$的倍数。

    题解

    我们考虑把$x$重复$233$次之后的十进制位之和一定是$233$的倍数,而$xleq 106$,只要让$k={107}+{107}2+{107}3+...+{107}{233}$即可。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    
    inline int read() {
        int s = 1, x = 0; char ch = getchar();
        while (ch < '0' || ch > '9') {if (ch == '-') s = -1; ch = getchar();}
        while (ch >= '0' && ch <= '9') {x = x * 10 + ch - '0'; ch = getchar();}
        return s * x;
    }
    
    int main() {
        int T = read();
        while (T--) {
            int x = read();
            for (int i = 1; i <= 233; i++) printf("10000000");
            printf("
    ");
        }
        return 0;
    }
    

    D. Brain-baffling Game

    题意

    题解

    代码

    
    

    E. Maximum Flow

    题意

    题解

    代码

    
    

    F. Trig Function

    题意

    求$cos nx$展开式中$cos^m x$项的系数。

    题解

    当$n$和$m$奇偶性相同时,$cos^m x$项的系数为$(-1)^{frac{n-m}{2}} imesfrac{n imes(n+m-2)!!}{m!(n-m)!!}$,除法改成乘逆元即可。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const ll Q = 998244353;
    
    inline ll power(ll x, ll n) {
        ll ret = 1;
        while (n) {
            if (n & 1) ret *= x, ret %= Q;
            x *= x, x %= Q;
            n >>= 1;
        }
        return ret;
    }
    
    inline ll f(ll n, ll m) {
        if (n < m) return 0;
        if ((n % 2) ^ (m % 2) == 1) return 0;
        ll sgn = ((n - m) / 2) % 2 ? -1 : 1, abs = n;
        if (m == 0) 
            abs /= n, abs %= Q;
        else {
            for (ll k = n - m + 2; k <= n + m - 2; k += 2) abs *= k, abs %= Q;
            for (ll k = 2; k <= m; k++) abs *= power(k, Q - 2), abs %= Q;
        }
        ll ret = (sgn * abs + Q) % Q;
        return ret;
    }
    
    int main() {
        ll n, m;  
        while (~scanf("%lld %lld", &n, &m)) {
            printf("%lld
    ", f(n, m));
        }
        return 0;
    }
    

    G. Xor

    题意

    题解

    代码

    
    

    H. Music

    题意

    题解

    代码

    
    

    I. Barty's Computer

    题意

    题解

    代码

    
    

    J. Easy Problem

    题意

    题解

    代码

    
    
  • 相关阅读:
    队列与双向队列

    linux nohup, jobs, fg, tail指令 指令前后台切换
    linux shell
    Linux学习笔记四 grep, sed, awk
    面试要求
    jenkins send files or publish
    mysql导入脚本
    第三方接口调用框架
    pdm文件name与comment互相同步
  • 原文地址:https://www.cnblogs.com/jstztzy/p/7533632.html
Copyright © 2020-2023  润新知