• Educational Codeforces Round 157 (A--D)视频详解


    Educational Codeforces Round 157 (A--D)视频详解

    视频链接

    Educational Codeforces Round 157 (A–D)视频详解
    在这里插入图片描述

    A题代码

    #include
    #define endl '\n'
    #define deb(x) cout << #x << " = " << x << '\n';
    #define INF 0x3f3f3f3f
    using namespace std;
    int x, y, k;
    
    void solve()
    {
    	cin >> x >> y >> k;
    	if(x >= y)
    	{
    		cout << x << endl;
    		return;
    	}
    	else
    	{
    		cout << y + (max(y - x - k, 0)) << endl;
    		return;
    	}
    
    }
    
    signed main()
    {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	int t;
    	//t = 1;
    	cin >> t;
    	while(t--)
    	solve();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    B题代码

    #include
    #define endl '\n'
    #define deb(x) cout << #x << " = " << x << '\n';
    #define INF 0x3f3f3f3f
    using namespace std;
    
    void solve()
    {
    	int n;
    	cin >> n;
    	vector<int>a(2 * n);
    	for(int i = 0; i < 2 * n; i ++)
    		cin >> a[i];
    	
    	sort(a.begin(), a.end());
    
    	cout << abs(a[n - 1] - a[0]) + abs(a[2 * n - 1] - a[n]) << endl;
    
    	for(int i = 0; i < n; i ++)
    		cout << a[i] << " " << a[n + i] << endl;
    
    }
    
    signed main()
    {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	int t;
    	//t = 1;
    	cin >> t;
    	while(t--)
    	solve();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    C题代码

    #include
    #define endl '\n'
    #define deb(x) cout << #x << " = " << x << '\n';
    #define INF 0x3f3f3f3f
    #define int long long
    using namespace std;
    
    map<int,map<int,int>>cnt;
    
    int GetInt(string s)
    {
    	int res = 0;
    	for(int i = 0; i < s.size(); i ++)
    		res += s[i] - '0';
    
    	return res;
    }
    
    void solve()
    {
    	int n;
    	cin >> n;
    	vector<string>s(n);
    	for(int i = 0; i < n; i ++)
    	{
    		cin >> s[i];
    		cnt[GetInt(s[i])][s[i].size()] ++;
    	}
    
    	int ans = 0;
    	for(int i = 0; i < n; i ++)
    	{
    		for(int j = 0; j < s[i].size(); j ++)
    		{
    			string str1 = s[i].substr(0, j + 1);
    			string str2 = s[i].substr(j + 1);
    
    			int s1 = GetInt(str1);
    			int a1 = GetInt(str2);
    			ans += cnt[s1 - a1][str1.size() - str2.size()];
    			
    			int s2 = GetInt(str2);
    			int a2 = GetInt(str1);
    			ans += cnt[s2 - a2][str2.size() - str1.size()];
    		}
    	}
    	
    	cout << ans << endl;
    }
    
    signed main()
    {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	int t;
    	t = 1;
    	//cin >> t;
    	while(t--)
    	solve();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    D题代码

    #include
    #define endl '\n'
    #define deb(x) cout << #x << " = " << x << '\n';
    #define INF 0x3f3f3f3f
    using namespace std;
    const int N = 2e5 + 10;
    int a[N], c[N];
    int son[N * 31][2], idx;
    int n;
    
    void insert(int x)
    {
    	int p = 0;
    	for(int i = 30; i >= 0; i -- )
    	{
    		int t = x >> i & 1;
    		if(!son[p][t])son[p][t] = ++ idx;
    		p = son[p][t];
    	}
    }
    
    int query(int x)
    {
    	int p = 0, res = 0;
    	for(int i = 30; i >= 0; i --)
    	{
    		int t = x >> i & 1;
    		if(son[p][!t])
    			res = (res << 1) + !t, p = son[p][!t];
    		else
    			res = (res << 1) + t, p = son[p][t];
    	}
    	return res;
    }
    
    void solve()
    {
    	cin >> n;
    	for(int i = 1; i <= n - 1; i ++)
    	{
    		cin >> a[i], c[i] = c[i - 1] ^ a[i];
    		insert(c[i]);
    	}
    
    	int b = INF;
    	for(int i = 0; i < n; i ++)
    	{
    		if((query(i) ^ i) <= n - 1)
    		{
    			//deb((query(i) ^ i));
    			b = i;
    			break;
    		}
    	}
    
    	cout << b << " ";
    	for(int i = 1; i <= n - 1; i ++)
    	{
    		cout << (b ^ c[i]) << " ";
    	}
    	cout << endl;
    }
    
    signed main()
    {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	int t;
    	t = 1;
    	//cin >> t;
    	while(t--)
    	solve();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
  • 相关阅读:
    Linux内核编译-ubuntu22.03-Linux-6.6
    14.5 类集对枚举的支持------ EnumMap类 与 EnumSet 类(血干JAVA系类)
    docker数据迁移
    MySQL精髓:如何使用ALL一次找到最大值
    NumPy 分割与搜索数组详解
    js-includes()方法
    2022年全国部分省市跨境电商交易规模汇总
    [附源码]计算机毕业设计springboot小太阳幼儿园学生管理系统
    PB的扩展DLL开发(超级篇)(八)
    Maven setting.xml 配置
  • 原文地址:https://blog.csdn.net/weixin_72060925/article/details/134253552