zoukankan      html  css  js  c++  java
  • Codeforces Round #665 (Div. 2)

    A

    #include <bits/stdc++.h>
    #define all(n) (n).begin(), (n).end()
    #define se second
    #define fi first
    #define pb push_back
    #define mp make_pair
    #define sqr(n) (n)*(n)
    #define rep(i,a,b) for(int i=(a);i<=(b);++i)
    #define per(i,a,b) for(int i=(a);i>=(b);--i)
    #define IO ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef pair<ll, ll> PLL;
    typedef vector<int> VI;
    typedef double db;
     
    const int N = 1e5 + 5;
     
    int n, m, _, k;
     
    int main() {
        IO;
        for (cin >> _; _; --_) {
            cin >> n >> k;
    		if (k >= n) cout << k - n << '
    ';
    		else if (k < n) cout << min(n - k, (n + k) & 1) << '
    ';
        }
        return 0;
    }
    

    B

    #include <bits/stdc++.h>
    #define all(n) (n).begin(), (n).end()
    #define se second
    #define fi first
    #define pb push_back
    #define mp make_pair
    #define sqr(n) (n)*(n)
    #define rep(i,a,b) for(int i=(a);i<=(b);++i)
    #define per(i,a,b) for(int i=(a);i>=(b);--i)
    #define IO ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef pair<ll, ll> PLL;
    typedef vector<int> VI;
    typedef double db;
     
    const int N = 1e5 + 5;
     
    int n, m, _, k;
    int x[3], y[3];
     
    int main() {
        IO;
        for (cin >> _; _; --_) {
            rep (i, 0, 2) cin >> x[i];
    		rep (i, 0, 2) cin >> y[i];
    		ll ans = 0;
    		if (x[2] >= y[1]) ans += (y[1] << 1), x[2] -= y[1], y[1] = 0;
    		else ans += (x[2] << 1), y[1] -= x[2], x[2] = 0;
     
    		if (x[2] >= y[2]) x[2] -= y[2], y[2] = 0;
    		else y[2] -= x[2], x[2] = 0;
     
    		if (x[2] >= y[0]) x[2] -= y[0], y[0] = 0;
    		else y[0] -= x[2], x[2] = 0;
     
    		if (x[1] >= y[1]) x[1] -= y[1], y[1] = 0;
    		else y[1] -= x[1], x[1] = 0;
     
    		if (x[1] >= y[0]) x[1] -= y[0], y[0] = 0;
    		else y[0] -= x[1], x[1] = 0;
     
    		ans -= (x[1] << 1);
    		cout << ans << '
    '; 
        }
        return 0;
    }
    

    C

    #include <bits/stdc++.h>
    #define all(n) (n).begin(), (n).end()
    #define se second
    #define fi first
    #define pb push_back
    #define mp make_pair
    #define sqr(n) (n)*(n)
    #define rep(i,a,b) for(int i=(a);i<=(b);++i)
    #define per(i,a,b) for(int i=(a);i>=(b);--i)
    #define IO ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef pair<ll, ll> PLL;
    typedef vector<int> VI;
    typedef double db;
     
    const int N = 1e5 + 5;
     
    int n, m, _, k;
    int a[N], b[N];
     
    int main() {
        IO;
        for (cin >> _; _; --_) {
            cin >> n;
    		rep (i, 1, n) cin >> a[i], b[i] = a[i];
    		sort(b + 1, b + 1 + n);
     
    		bool f = 1;
    		rep (i, 1, n) {
    			if (b[i] == a[i]) continue;
    			f = (a[i] % b[1] == 0);
    			if (!f) break;
    		}
     
    		if (f) cout << "YES
    ";
    		else cout << "NO
    ";
        }
        return 0;
    }
    

    D

    #include <bits/stdc++.h>
    #define all(n) (n).begin(), (n).end()
    #define se second
    #define fi first
    #define pb push_back
    #define mp make_pair
    #define sqr(n) (n)*(n)
    #define rep(i,a,b) for(int i=(a);i<=(b);++i)
    #define per(i,a,b) for(int i=(a);i>=(b);--i)
    #define IO ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef pair<ll, ll> PLL;
    typedef vector<int> VI;
    typedef double db;
    
    const int N = 1e6 + 5, mod = 1e9 + 7;
    
    int n, m, _, k;
    int h[N], to[N << 1], ne[N << 1], tot;
    ll b[N], siz[N];
    ll tax[N], cnt;
    
    void add(int u, int v) {
    	ne[++tot] = h[u]; h[u] = tot; to[tot] = v;
    }
    
    void dfs(int u, int fa) {
    	siz[u] = 1;
    	for (int i = h[u]; i; i = ne[i]) {
    		int y = to[i];
    		if (y == fa) continue;
    		dfs(y, u);
    		siz[u] += siz[y];
    	}
    
    	if (fa) tax[++cnt] = siz[u] * (n - siz[u]);
    }
    
    int main() {
    	IO;
    	for (cin >> _; _; --_) {
    		cin >> n; tot = cnt = 0;
    		rep(i, 1, n) h[i] = 0;
    		rep(i, 2, n) {
    			int u, v; cin >> u >> v;
    			add(u, v); add(v, u);
    		}
    		dfs(1, 0);
    		sort(tax + 1, tax + n);
    
    		cin >> m;
    		rep(i, 1, m) cin >> b[i];
    		sort(b + 1, b + 1 + m);
    
    		ll ans = 0;
    		while (m > n - 1) b[m - 1] = (b[m - 1] * b[m]) % mod, --m;
    		per (i, n - 1, 1) {
    			if (m > 0) ans = (ans + tax[i] % mod * b[m] % mod) % mod, --m;
    			else ans = (ans + tax[i]) % mod;
    		}
    		cout << ans << '
    ';
    	}
    	return 0;
    }
    
  • 相关阅读:
    URAL 2046 A
    URAL 2056 Scholarship 水题
    Codeforces Gym 100286I iSharp 水题
    Codeforces Gym H. Hell on the Markets 贪心
    Codeforces Gym 100286G Giant Screen 水题
    Codeforces Gym 100286B Blind Walk DFS
    Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
    Codeforces Gym 100286A. Aerodynamics 计算几何 求二维凸包面积
    Codeforces Gym 100418K Cards 暴力打表
    Codeforces Gym 100418J Lucky tickets 数位DP
  • 原文地址:https://www.cnblogs.com/2aptx4869/p/13544024.html
Copyright © 2011-2022 走看看