C. Salyg1n and the MEX Game Codeforces Round 897 (Div. 2)

这篇具有很好参考价值的文章主要介绍了C. Salyg1n and the MEX Game Codeforces Round 897 (Div. 2)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Problem - C - Codeforces

题目大意:有一个所有数互不相同的长度为n的数组n,A先手,可以向数组中假如一个没有的数x,B可以从数组中移除一个<x的数,目标是使数组最终的MEX最小,扮演A进行操作,使数组最终的MEX最大

1<=n<=1e5;最大回合数为n

思路:我们要让当前数组的MEX增大,必须放入MEX,然后B移除一个更小的数以后,MEX肯定会变小,所以我们必须把B去掉的数加回去来维持MEX,这样的话每回合操作的数越来越小,因为游戏规定B不能操作就直接游戏结束,所以如果在某一回合A放了一个0,那么当前游戏就结束了,也就是除了A的第一次操作以外,其他操作都只能维护原有的MEX。文章来源地址https://www.toymoban.com/news/detail-732832.html

#include<bits/stdc++.h>
//#include<__msvc_all_public_headers.hpp>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
int n;
int a[N];
void init()
{
	
}
void solve()
{
	cin >> n;
	init();
	int mex = 0;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}
	sort(a + 1, a + n + 1);//将原数组排序
	for (int i = 1; i <= n; i++)
	{//找MEX
		if (a[i] == mex)
			mex++;
		else
			break;
	}
	cout << mex << endl;
	cout.flush();
	int op;
	while (cin >> op)
	{
		if (op < 0)
		{
			break;
		}
		cout << op << endl;//B拿走什么,A就放回什么
		cout.flush();
	}
}
int main()
{
	cin.tie(0);
	cout.tie(0);

	ios::sync_with_stdio(false);
	int t;
	cin >> t;
	while (t--)
	{
		solve();
	}
	return 0;
}

到了这里,关于C. Salyg1n and the MEX Game Codeforces Round 897 (Div. 2)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【每日一题】—— C. Challenging Cliffs(Codeforces Round 726 (Div. 2))

    🌏博客主页: PH_modest的博客主页 🚩当前专栏: 每日一题 💌其他专栏: 🔴 每日反刍 🟡 C++跬步积累 🟢 C语言跬步积累 🌈座右铭: 广积粮,缓称王! C. Challenging Cliffs(Codeforces Round 726 (Div. 2)) 首先将给的数排序 然后找相邻两数绝对值最小的两个数(将他们的下标记为

    2024年02月14日
    浏览(68)
  • Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist

     一开始肯定要排个序,b相同时t大的在前边,不同时b大的在前面。 然后想最多只能选k个的限制,可以这样想,每次用到的b只能用已选到的最小的值,那可以把每个b都枚举一遍,然后每一次选时长最长的,且b大于等于当前的b的那k个不就好了吗,时间复杂度也才O(n),然

    2024年02月12日
    浏览(40)
  • Codeforces Round 911 (Div. 2) C. Anji‘s Binary Tree (DFS + 树)

    题目 思路:         dfs树的每一条到叶子的路径, 并计算路径中需要修改的个数, 在这些个数中取最小值 注意:         本题中的树是以每个结点的左右孩子是什么的形式给出的, 所以可以不用建树, 只需保存每个结点的左右孩子是什么即可。 代码:

    2024年01月16日
    浏览(43)
  • Codeforces Beta Round 15 C. Industrial Nim Nim,1~n的异或和

    Problem - 15C - Codeforces 目录 Nim游戏: 1~n的异或和: 代码: n个石头堆,谁最后没得取谁败 我用的异或思考法,对所有堆异或。 开局异或和为0的败 最后全是0,异或完也是0. //最后是0,这位就输了 //A选手让异或和为0,B选手必须动一下,而他做任何操作都会使异或和不为0 //这

    2024年02月21日
    浏览(60)
  • Educational Codeforces Round 135 (Rated for Div. 2)C. Digital Logarithm(思维)

    C. Digital Logarithm 给两个长度位 n n n 的数组 a a a 、 b b b ,一个操作 f f f 定义操作 f f f 为, a [ i ] = f ( a [ i ] ) = a [ i ] a[i]=f(a[i])=a[i] a [ i ] = f ( a [ i ]) = a [ i ] 的位数 求最少多少次操作可以使 a 、 b a、b a 、 b 两个数组变得完全相同 性质: 对于任何数,经过两次操作我们一定可以

    2024年02月20日
    浏览(38)
  • 【每日一题】—— C. K-th Not Divisible by n (Codeforces Round 640 (Div. 4))

    🌏博客主页: PH_modest的博客主页 🚩当前专栏: 每日一题 💌其他专栏: 🔴 每日反刍 🟡 C++跬步积累 🟢 C语言跬步积累 🌈座右铭: 广积粮,缓称王! 题目大意:找第k个不能整除n的数字 题目链接:C. K-th Not Divisible by n (Codeforces Round 640 (Div. 4)) 这是一个找规律题 n前面

    2024年02月15日
    浏览(51)
  • C. Partitioning the Array

    题目 解题思路 对于两个数 x 、 y x、y x 、 y ,如果 x x x mod m m m ≡ y y y mod m m m ,则有 ( y − x y - x y − x ) ≡ 0 (mod m m m ),则 m m m 是 (y - x) 的因数,所有因数的最大公约数非 1 则是一种方案 代码实现

    2024年01月20日
    浏览(32)
  • C. Word on the Paper

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output On an 8×88×8 grid of dots, a word consisting of lowercase Latin letters is written vertically in one column, from top to bottom. What is it? Input The input consists of multiple test cases. The first line of the input contains a single integer t�

    2024年02月13日
    浏览(51)
  • 【CF闯关练习】—— 1400分(C. Make Good、B. Applejack and Storages)

    🌏博客主页: PH_modest的博客主页 🚩当前专栏: cf闯关练习 💌其他专栏: 🔴 每日一题 🟡 C++跬步积累 🟢 C语言跬步积累 🌈座右铭: 广积粮,缓称王! 👉传送门👈 XOR运算就是按位异或:相同为0,不同为1 这个操作符有两个结论: X ⊕ X = 0 Xoplus X= 0 X ⊕ X = 0 0 ⊕ X = X

    2024年01月21日
    浏览(50)
  • 【LeetCode 算法】Find the Losers of the Circular Game 找出转圈游戏输家

    n 个朋友在玩游戏。这些朋友坐成一个圈,按 顺时针方向 从 1 到 n 编号。从第 i 个朋友的位置开始顺时针移动 1 步会到达第 (i + 1) 个朋友的位置( 1 = i n ),而从第 n 个朋友的位置开始顺时针移动 1 步会回到第 1 个朋友的位置。 游戏规则如下: 第 1 个朋友接球。 接着,第

    2024年02月12日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包