Codeforces Round 908 (Div. 2)视频详解

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

视频链接

Codeforces Round 908 (Div. 2)视频详解

A题代码

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;
	string s;
	cin >> s;
	bool fa = false;
	bool fb = false;
	for(int y = 1; y <= n; y ++)
	{
		for(int x = 1; x <= n; x ++)
		{

			int ca = 0, cb = 0, cat = 0, cbt = 0;
			for(int i = 0; i < n; i ++)
			{
				if(s[i] == 'A')
					ca ++;
				else
					cb ++;

				if(ca == x)
				{
					ca = 0, cb = 0;
					cat ++;
					
				}

				if(cb == x)
				{
					ca = 0, cb = 0;
					cbt ++;
				}
				if(cat == y)
				{
					if(i < n - 1)
						break;
					fa = true;
				}
				if(cbt == y)
				{
					if(i < n - 1)
						break;

					fb = true;
				}
			}

		}
	}
	if(fa && !fb)
	{
		cout << "A" << endl;
	}
	else if(fb && !fa)
	{
		cout << "B" << endl;
	}	
	else
	{
		cout << "?" << endl;
	}
}

void solve_1()
{
	int n;
	cin >> n;
	string s;
	cin >> s;
	cout << s.back() << endl;
}

signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t;
	//t = 1;
	cin >> t;
	while(t--)
	solve_1();
}

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(n);
	map<int,int>st;
	for(int i = 0; i < n; i ++)
	{
		cin >> a[i];
		st[a[i]] ++;
	}

	int cnt = 0;
	for(auto [a, b]: st)
		if(b >= 2)
			cnt ++;

	if(cnt < 2)
	{
		cout << -1 << endl;
		return;
	}

	vector<int>b(n);
	int x = 1;
	for(int i = 0; i < n; i ++)
	{
		if(!b[i] && st[a[i]] > 1)
		{
			int col = 0;
			for(int j = i; j < n; j ++)
			{
				if(a[j] == a[i])
				{
					b[j] = (col) % 2 + x;
					col ++;
				}
			}
			x ++;
		}
		if(x == 3)
			break;
	}
	for(int i = 0; i < n; i ++)
	{
		if(!b[i])
			b[i] = 1;
	}
	for(int i = 0; i < n; i ++)
	{
		cout << b[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();
}

C题代码

cpp 复制代码
#include <bits/stdc++.h>
 
using namespace std;
 
void solve() 
{
  int n, k;
  cin >> n >> k;
  vector<int> a(n + 1);
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  k = min(k, n);
  int last = n;
  for (int i = 0; i < k; i++) 
  {
    if (a[last] > n) 
    {
      cout << "No\n";
      return;
    }
    last -= a[last];
    if(last <= 0)
    	last += n;
  }
  cout << "Yes\n";
}
 
signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t;
  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;

bool cmp(int x, int y)
{
	return x > y;
}
void solve()
{
	int n, m;
	cin >> n >> m;
	vector<int>a(n),b(m);

	for(int i = 0; i < n; i ++)
		cin >> a[i];
	for(int i = 0; i < m; i ++)
		cin >> b[i];

	sort(b.begin(), b.end(), cmp);

	int j = 0;
	for(int i = 0; i < n; i ++)
	{
		while(j < m && b[j] >= a[i])
		{
			cout << b[j] << " ";
			j ++;
		}
		cout << a[i] << " ";
	}
	while(j < m)
		cout << b[j ++] << " ";

	cout << endl; 
}

signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t;
	//t = 1;
	cin >> t;
	while(t--)
	solve();
}
相关推荐
幸运超级加倍~9 分钟前
软件设计师-上午题-16 算法(4-5分)
笔记·算法
yannan2019031316 分钟前
【算法】(Python)动态规划
python·算法·动态规划
埃菲尔铁塔_CV算法18 分钟前
人工智能图像算法:开启视觉新时代的钥匙
人工智能·算法
EasyCVR19 分钟前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
linsa_pursuer20 分钟前
快乐数算法
算法·leetcode·职场和发展
小芒果_0121 分钟前
P11229 [CSP-J 2024] 小木棍
c++·算法·信息学奥赛
qq_4340859023 分钟前
Day 52 || 739. 每日温度 、 496.下一个更大元素 I 、503.下一个更大元素II
算法
Beau_Will23 分钟前
ZISUOJ 2024算法基础公选课练习一(2)
算法
XuanRanDev25 分钟前
【每日一题】LeetCode - 三数之和
数据结构·算法·leetcode·1024程序员节
gkdpjj27 分钟前
C++优选算法十 哈希表
c++·算法·散列表