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

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

视频链接

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

A题代码

cpp 复制代码
#include<bits/stdc++.h>
#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();
}

B题代码

cpp 复制代码
#include<bits/stdc++.h>
#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();
}

C题代码

cpp 复制代码
#include<bits/stdc++.h>
#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();
}

D题代码

cpp 复制代码
#include<bits/stdc++.h>
#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();
}
相关推荐
YuTaoShao13 分钟前
【LeetCode 每日一题】3010. 将数组分成最小总代价的子数组 I——(解法二)排序
算法·leetcode·排序算法
吴维炜2 小时前
「Python算法」计费引擎系统SKILL.md
python·算法·agent·skill.md·vb coding
No0d1es2 小时前
电子学会青少年软件编程(C语言)等级考试试卷(三级)2025年12月
c语言·c++·青少年编程·电子学会·三级
Σίσυφος19003 小时前
PCL Point-to-Point ICP详解
人工智能·算法
bjxiaxueliang3 小时前
一文掌握C/C++命名规范:风格、规则与实践详解
c语言·开发语言·c++
玄〤3 小时前
Java 大数据量输入输出优化方案详解:从 Scanner 到手写快读(含漫画解析)
java·开发语言·笔记·算法
weixin_395448913 小时前
main.c_cursor_0202
前端·网络·算法
senijusene3 小时前
数据结构与算法:队列与树形结构详细总结
开发语言·数据结构·算法
杜家老五3 小时前
综合实力与专业服务深度解析 2026北京网站制作公司六大优选
数据结构·算法·线性回归·启发式算法·模拟退火算法
xu_yule4 小时前
网络和Linux网络-13(高级IO+多路转接)五种IO模型+select编程
linux·网络·c++·select·i/o