zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 98 (Rated for Div. 2)

    A

    如果(n = m),答案为(2 imes n);如果(n e m),答案为(2 imes max(n,m) - 1)

    
    #include <bits/stdc++.h>
    using namespace std;
    
    int n, m;
    
    int main()
    {
    	int __;
    	scanf("%d", &__);
    	while(__ -- ) 
    	{
    		scanf("%d%d", &n, &m);
    		printf("%d
    ", 2 * max(n, m) - (m != n));
    	}
    	return 0;
    } 
    

    B

    (max(a_i) imes (n - 1) <= sum + ans) , 并且((n - 1) mid (sum + ans))(ans)如果是负数,转化成模((n-1))意义下的正数即可.

    
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int N = 1e5 + 20;
    
    int n, a[N];
    
    int main()
    {
    	int __;
    	scanf("%d", &__);
    	while(__ --)
    	{
    		scanf("%d", &n);
    		LL sum = 0, maxn = 0;
    		for(int i = 1; i <= n; ++ i) 
    		{
    			scanf("%d", &a[i]);
    			sum += a[i];
    			maxn = max(maxn, (LL)a[i]);
    		}
    		LL res = maxn * (n - 1) - sum;
    		if(res < 0) res = (res % (n - 1) + (n - 1)) % (n - 1); 
    		printf("%lld
    ", res);
    	}
    	return 0;
    }
    

    C

    
    #include <bits/stdc++.h>
    using namespace std;
    const int N = 2e5 + 20;
     
    char str[N];
    
    int main()
    {
    	int __;
    	scanf("%d", &__);
    	while(__ -- )
    	{
    		scanf("%s", str);
    		int res = 0, a = 0, b = 0;
    		for(int i = 0; str[i]; ++ i)
    		{
    			if(str[i] == '[') a ++; 
    			if(str[i] == ']' && a) a --, res ++; 
    			if(str[i] == '(') b ++;
    			if(str[i] == ')' && b) b --, res ++;
    		}
    		printf("%d
    ", res);
    	}
    	return 0; 
    } 
    

    D

    预处理fib,求(2^n)的逆元即可

    
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int MOD = 998244353;
    const int N = 2e5 + 10;
    
    int n, f[N];
    
    int pow_mod(int a, int b, int p)
    {
    	int res = 1;
    	while(b)
    	{
    		if(b & 1) res = (LL)res * a % p;
    		a = (LL)a * a % p;
    		b >>= 1;
    	}
    	return res;
    }
    
    int main()
    {
    	f[1] = f[2] = 1;
    	for(int i = 3; i < N; ++ i) f[i] = (f[i - 1] + f[i - 2]) % MOD;
    	scanf("%d", &n);
    	int res = (LL)f[n] * pow_mod(pow_mod(2, n, MOD), MOD - 2, MOD) % MOD;
    	printf("%d
    ", res);
    	return 0;
    }
    

    2020.11.21

  • 相关阅读:
    HDU 1434 幸福列车(优先队列)
    HDU 4287 Intelligent IME(字典树)
    HDU 1671 Phone List(字典树)
    HDU 1711 Number Sequence(KMP匹配数字串)
    HDU 1251 统计难题(字典树计算前缀数量)
    HDU 2087 剪花布条(KMP基础应用)
    HRBUST 1909 理工门外的树(双数组实现线段树功能)
    HDU 1166 敌兵布阵(线段树)
    HDU 1754 I Hate It(线段树基础应用)
    HDU 1260 Tickets(基础dp)
  • 原文地址:https://www.cnblogs.com/ooctober/p/14014897.html
Copyright © 2011-2022 走看看