• 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

  • 相关阅读:
    TCP,IP,HTTP,SOCKET区别和联系
    添加Nginx为系统服务(设置开机启动)
    设计模式大全
    linux 命令行 光标移动技巧等
    Linux中ping命令
    TCP/IP协议 三次握手与四次挥手【转】
    Node 出现 uncaughtException 之后的优雅退出方案
    Google Protocol Buffers简介
    关于绝对路径和相对路径
    node定时任务——node-schedule模块使用说明
  • 原文地址:https://www.cnblogs.com/ooctober/p/14014897.html
Copyright © 2020-2023  润新知