• Codeforces Round #685 (Div. 2)


    待补

    A

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

    B

    
    #include <bits/stdc++.h>
    using namespace std;
    const int N = 100 + 20;
    
    int n, q;
    char str[N];
    
    int main()
    {
    	int __;
    	scanf("%d", &__);
    	while(__ -- )
    	{
    		scanf("%d%d", &n, &q);
    		scanf("%s", str + 1);
    		while(q -- )
    		{
    			int l, r;
    			scanf("%d%d", &l, &r);
    			int flag = 0;
    			for(int i = 1; i < l; ++ i) 
    				if(str[i] == str[l]) 	
    					flag = 1;
    			for(int i = r + 1; i <= n; ++ i)
    				if(str[i] == str[r]) 
    					flag = 1;
    			if(flag) printf("YES
    ");
    			else printf("NO
    ");
    		}		
    	}
    	return 0;
    } 
    

    C

    
    #include <bits/stdc++.h>
    using namespace std;
    const int N = 2e6 + 10;
    
    int n, k;
    char a[N], b[N];
    int ca[30], cb[30];
    
    int main()
    {
    	int __;
    	scanf("%d", &__);
    	while(__ -- )
    	{
    		for(int i = 0; i < 26; ++ i) 
    			ca[i] = cb[i] = 0;
    		scanf("%d%d", &n, &k);
    		scanf("%s%s", a + 1, b + 1);
    		for(int i = 1; i <= n; ++ i) ca[a[i] - 'a'] ++;
    		for(int i = 1; i <= n; ++ i) cb[b[i] - 'a'] ++; 
    		int flag = 0;
    		for(int i = 0; i < 26; ++ i) 
    		{
    			if(ca[i] < cb[i]) { flag = 1; break;}
    			if((ca[i] - cb[i]) % k == 0)
    				ca[i + 1] = ca[i + 1] + ca[i] - cb[i];
    			else {flag = 1; break;}
    		}
    		if(flag) puts("No");
    		else puts("Yes");
    	}
    	return 0;
    } 
    

    D

    
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    
    LL d, k;
    
    int main()
    {
    	int __;
    	scanf("%d", &__);
    	while(__ -- )
    	{
    		scanf("%lld%lld", &d, &k);
    		LL x = 0, y = 0, res = 0;
    		while(x * x + y * y <= d * d)
    		{
    			if(x < y) x += k;
    			else y += k;
    			res ++;
    		}
    		if(res % 2 == 0) puts("Ashish");
    		else puts("Utkarsh");
    	}
    	return 0;
    } 
    

    E1/E2

    
    #include <bits/stdc++.h>
    using namespace std;
    
    const int N = 1 << 17;
    int n, v[N], from[N], a[N];
    
    int query(int op, int i, int j)
    { 
    	if(op == 1) printf("AND"); 
    	if(op == 2)	printf("XOR"); 
    	printf(" %d %d
    ", i, j); fflush(stdout);
    	int x;
    	scanf("%d", &x);
    	return x; 
    } 
    
    void print()
    {
    	printf("!");
    	for(int i = 1; i <= n; ++ i) printf(" %d", a[i]);
    	puts(""); 
    }
    
    void f(int x, int y) 
    {
    	a[x] = a[y] = query(1, x, y);
    	a[1] = v[x] ^ a[x];
    	for(int i = 2; i <= n; ++ i)
    		a[i] = a[1] ^ v[i];
    	print();
    }
    
    void g(int x, int y)
    {
    	int v1 = query(1, 1, x);
    	int v2 = query(1, 1, y);
    	for(int i = 0; i < 16; ++ i)
    	{
    		int u = 0;
    		if(i == 0) u = (v2 >> i) & 1;
    		else u = (v1 >> i) & 1;
    		a[1] |= u << i;
    		for(int j = 2; j <= n; ++ j)
    			a[j] |= (u ^ ((v[j] >> i) & 1)) << i;
    	}
    	print();
    }
    
    int main()
    {
    	scanf("%d", &n);
    	for(int i = 2; i <= n; ++ i) v[i] = query(2, 1, i);
    	for(int i = 2; i <= n; ++ i)
    		if(!v[i]) { f(1, i); return 0; }
    	for(int i = 2; i <= n; ++ i)
    		if(!from[v[i]]) from[v[i]] = i;
    		else { f(from[v[i]], i); return 0; }
    	g(from[1], from[2]);
    	return 0;
    } 
    

    2020.11.23

  • 相关阅读:
    windows下python3.6环境搭建
    接口自动化(2)----如何编写接口自动化用例
    关于接口自动化测试的规则说明
    linux 常用命令 补充
    linux 常用命令
    linux 初识
    java高级教程 JDK代理和CGLIB代理两种方式 账户类
    java高级教程 实例化和非实例化 bean 学生信息
    java高级教程 俩数之和
    C++使用printf输出string类
  • 原文地址:https://www.cnblogs.com/ooctober/p/14025226.html
Copyright © 2020-2023  润新知