首页 > 其他分享 >CF1066C 题解

CF1066C 题解

时间:2022-08-26 02:11:16浏览次数:154  
标签:队列 题解 CF1066C int mp 双端 push op

前言

题目传送门!

更好的阅读体验?

本题是简单的双端队列练手题。

思路

题意大致如下:

  • 执行双端队列 push_front() 操作。
  • 执行双端队列 push_back() 操作。
  • 查询 \(\min\{mp_x - L, R - mp_x\}\),其中 \(mp_x\) 表示 \(x\) 元素的对应下标。

由于 STL 配备的双端队列性能较差,使用数组模拟队列。

每次压元素时,记录 \(mp_x\)。输出直接依照上面的式子即可。

需要注意 push_front() 可能使得队列下标越界,解决方法是将 \(L\) 与 \(R\) 赋予较大值。

实际不需要实现队列,只需记录 \(mp_x\)。

代码

#include <cstdio>
#include <iostream>
using namespace std;
void fastio()
{
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
}
const int N = 2e5;
int mp[N << 1 + 5], l = N+1, r = N; //原本是 l=1 与 r=0,补后变为 l=N+1 与 r=N。 
int main()
{
	fastio();
	int Q;
	cin >> Q;
	while (Q--)
	{
		char op; int x;
		cin >> op >> x;
		if (op == 'L') mp[x] = --l;
		else if (op == 'R') mp[x] = ++r;
		else if (op == '?') cout << min(mp[x] - l, r - mp[x]) << '\n';
	}
	return 0;
}

希望能帮助到大家!
首发:2022-07-20 09:50:42

标签:队列,题解,CF1066C,int,mp,双端,push,op
From: https://www.cnblogs.com/liangbowen/p/16622899.html

相关文章

  • SP733 题解
    前言题目传送门!更好的阅读体验?校内比赛题。赶紧补篇题解。思路经典的二分加搜索。由于\(h_{i,j}\)范围很小,考虑二分答案。二分答案的范围应该是\([0,110]\)。......
  • P3057 题解
    ###前言题目传送门\(\color{red}{see}\space\color{green}{in}\space\color{blue}{my}\space\color{purple}{blog}\)在学校比赛时遇到了这一题,写一篇题解纪念一下。......
  • P4944 题解
    前言题目传送门!或许更好的阅读体验?这题算是一道中模拟?码量不会很高,大概只有\(100\)至\(150\)行。思路输入地图。注意,还不能读入蛇的行动指令,因为我们不知道......
  • gdfzoj 比赛题解
    前言本次比赛:初一训练5.21/编号531题目难度中等偏上,有几题比较简单,有两三题较难。T1题目:gdfzoj1441思路:算是一道暴力题。由于\(h_{i,j}\)范围很小,考虑二分答......
  • P8344 题解
    ###前言题目传送门\(\color{red}{see}\space\color{green}{in}\space\color{blue}{my}\space\color{purple}{blog}\)这题作为本次比赛的T1,难度感觉还行,算是一道结......
  • AT2580 题解
    前言题目传送门!更好的阅读体验?这题是常规的二分答案。前置知识:二分答案教大家一个小技巧:如何判断一题是否可以使用二分答案,以及如何编写程序?设计\(f(x)\)函数,确......
  • P8400 题解
    前言题目传送门!或许更好的阅读体验?这题非常简单,考察读入读出,以及较简单的代数运算。思路我们可以利用代数解这道题目。设一共有\(n\)个大盒子,\(m\)个小盒子。得......
  • P1415 题解
    前言题目传送门!更好的阅读体验?这题是一道挺好的\(\texttt{dp}\)题啊,但大家的题解都写得不够详细。所以,我来补一篇\(\LaTeX\)题解,希望能帮助大家。思路首先是读......
  • CF371B 题解
    前言题目传送门!更好的阅读体验?这题显然没有蓝的难度。其他题解代码不好看,而且没有讲清楚,那我补一发吧。题目简述有两个数\(a\),\(b\),每次操作可以给\(a\)或\(b\)......
  • P8410 题解
    前言题目传送门!更好的阅读体验?本次比赛第二题,好像没有人抢题解,那我来一发。思路还是挺巧妙的。\(\texttt{10pts}\)思路深搜求解即可。最坏情况,时间复杂度\(O(n!......