首页 > 其他分享 >题解 CF546C

题解 CF546C

时间:2022-11-30 09:36:58浏览次数:68  
标签:CF546C int 题解 pop 手牌 push front

题解 CF546C

codeforces网址

这个题看起来很难,其实是一个模拟题

大体思路就是模拟每个人拿出手牌,并且比较,然后放入相应的人的手牌中的过程

然后让我们想一下,如何才能便捷的完成上面的过程呢?

可以用数组模拟对吧,但是,我们可以用便捷的STlqueue来实现

拿出的手牌可以直接用一个变量来取出队列的 front,然后比较两个 front

因为需要把自己的手牌放在对方的手牌之上,所以应该先 push 对方的手牌,再 push 自己的手牌

因为如果一直不能结束就输出 \(-1\) ,而且没有明确的边界,所以我们可以直接玄学把 10^4 当做边界

最后如果有一个人的手牌没有了,直接输出当前的步数和另一个人的编号即可

#include<cstdio>
#include<queue>
using namespace std;
queue<int> q[3];
int n;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=2;i++){
		scanf("%d",&n);
		for(int j=1;j<=n;j++){
			int x;
			scanf("%d",&x);
			q[i].push(x);
		}
	}
	for(int i=1;i<10000;i++){
		if(q[1].empty()){
			printf("%d 2",i-1);
			return 0;
		}
		if(q[2].empty()){
			printf("%d 1",i-1);
			return 0;
		}
		if(q[1].front()>q[2].front()){
			int t=q[1].front();
			q[1].pop();
			q[1].push(q[2].front());
			q[2].pop();
			q[1].push(t);
		}else{
			int t=q[2].front();
			q[2].pop();
			q[2].push(q[1].front());
			q[1].pop();
			q[2].push(t);
		}
	}
	printf("-1");
	return 0;
}

标签:CF546C,int,题解,pop,手牌,push,front
From: https://www.cnblogs.com/Tyrue-blog/p/16937429.html

相关文章

  • 题解 CF1676G
    这个题标签里有树形dp,但是其实用dfs已经足以解决这道题。看这道题就可以发现这两道题其实是差不多的。首先需要给两个节点之间建边,我们需要从2到n循环输入。因为......
  • 题解 SP346
    题解SP346这个题的翻译貌似有点问题,这里的coins和goldcoins其实是一个东西有了这个前提,我们是再去看题面,就可以发现,这里的coins可以同时换成$\dfrac{n}{2}\\df......
  • 题解 CF1743B
    这个题是个简单的构造题因为不能有连续的“排列”,而排列序列都是必须是以\(1\)开头所以我们只要让\(2\)和\(1\)不相邻就能保证一个序列里只有它本身和\(1\)这两......
  • 题解 CF1370B
    题解CF1370B这个题跟脑筋急转弯一样诶\(gcd\)这个东西他有很多种可能性,但是如果我们考虑最简单的数字性质奇偶,就会发现,其实所有偶数的\(gcd\)都是\(2\)对吧所以,我......
  • 题解 CF471A
    题解CF471A这个题看题解都写得非常的冗余,不简洁,这里提供一种特别神奇的做法首先他需要我们判断这里是否有相同的数字,并且还要通过这个相同的个数来进行判断所以,我们可......
  • 题解 CF1719B
    题解CF1719B这个题观察样例,可以发现,被选中的两个数,一定是相邻的两个数。所以,我们只需要先循环一遍,看看有多少数满足,然后判断是否等于n。如果等于说明可以,先输出YES......
  • 题解 SP18965
    题解SP18965题目大意:奶牛很厌烦等待,奶牛i在它的截止时间$d_i(1\leqd_i\leq10,000)$前挤\(g(1\leqg_i\leq1000)\)的奶,否则将不能挤奶。时间t开始时为0,......
  • 题解 CF518B
    题解CF518B这个题最暴力的做法就是对于每个\(s_i\)都在b字符串里扫一遍但是\(s.len\leq2\times10^5\)所以肯定过不了但是我们思考一下,这里的字母对应其实可以......
  • 题解 CF1719A
    题解CF1719A这个题判断\(n+m\)的奇偶性就可以了。奇数输出Burenka,偶数输出Tonya。#include<cstdio>#include<iostream>#include<cmath>#include<algorithm>......
  • 题解 CF1716B
    题解CF1716B这是一个纯纯的构造题我们要构造n个序列,每个序列他的元素\(a_i\)在第i个位置上的数量都应该比上一个序列的数量并且这种序列只能通过交换两个数字来......