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 分钟前
LeetCode 876
java·开发语言·数据结构·算法·leetcode
Happy鱿鱼43 分钟前
C语言-数据结构 有向图拓扑排序TopologicalSort(邻接表存储)
c语言·开发语言·数据结构
KBDYD101044 分钟前
C语言--结构体变量和数组的定义、初始化、赋值
c语言·开发语言·数据结构·算法
Crossoads1 小时前
【数据结构】排序算法---桶排序
c语言·开发语言·数据结构·算法·排序算法
自身就是太阳1 小时前
2024蓝桥杯省B好题分析
算法·职场和发展·蓝桥杯
Rookie也要加油2 小时前
WebRtc一对一视频通话_New_peer信令处理
笔记·学习·音视频·webrtc
孙小二写代码2 小时前
[leetcode刷题]面试经典150题之1合并两个有序数组(简单)
算法·leetcode·面试
QXH2000002 小时前
数据结构—单链表
c语言·开发语言·数据结构
imaima6662 小时前
数据结构----栈和队列
开发语言·数据结构
little redcap2 小时前
第十九次CCF计算机软件能力认证-1246(过64%的代码-个人题解)
算法