PPMM
代码
#include<cstdio>
using namespace std;
const int N = 1000000 , INF = 2e9;
int n , m , x , head = 1 , tail , p , s;
char opt[5];
inline int read()
{
char ch = getchar();
int res = 0 , f = 1;
for(; ch < '0' || ch > '9'; ch = getchar()) if (ch == '-') f = -f;
for(; ch >= '0' && ch <= '9'; ch = getchar()) res = (res << 3) + (res << 1) + ch - '0';
return res * f;
}
inline int my_m(int x , int y , int o)
{
if (!o) return x > y ? x : y;
if (o) return x < y ? x : y;
}
struct tree{
int top;
int tr[(N << 2) + 5][3];
inline void change(int l , int r , int k , int x , int v)
{
if (l == r && l == x)
{
tr[k][0] = tr[k][1] = v;
return;
}
int mid = (l + r) >> 1;
if (x <= mid) change(l , mid , k << 1 , x , v);
else change(mid + 1 , r , k << 1 | 1 , x , v);
tr[k][0] = my_m(tr[k << 1][0] , tr[k << 1 | 1][0] , 0);//Max
tr[k][1] = my_m(tr[k << 1][1] , tr[k << 1 | 1][1] , 1);//Min
}
inline int query(int l , int r , int k , int x , int y , int o)
{
if (l >= x && r <= y) return tr[k][o];
int mid = (l + r) >> 1 , res = INF;
if (!o) res = -res;
if (x <= mid) res = my_m(res , query(l , mid , k << 1 , x , y , o) , o);
if (y > mid) res = my_m(res , query(mid + 1 , r , k << 1 | 1 , x , y , o) , o);
return res;
}
}f;
int main()
{
// freopen("PPMM.in" , "r" , stdin);
// freopen("PPMM.out" , "w" , stdout);
n = read();
m = n;
while (m--)
{
opt[1] = getchar();
while (opt[1] != 'P' && opt[1] != 'M') opt[1] = getchar();
opt[2] = getchar() , opt[3] = getchar();;
if (opt[1] == 'P' && opt[2] == 'U')
{
x = read();
if (p == 1) x = -x;
tail++ , s++;
f.change(1 , n , 1 , tail , x);
}
if (s == 0) continue;
if (opt[1] == 'P' && opt[2] == 'O') head++ , s--;
else if (opt[1] == 'M' && opt[2] == 'I') p ^= 1;
else
if (opt[1] == 'M' && opt[2] == 'A')
{
if (p == 0) printf("%d\n" , f.query(1 , n , 1 , head , tail , 0));//Max
else printf("%d\n" , -1 * f.query(1 , n , 1 , head , tail , 1));//Min
}
}
}
PPMM的更多相关文章
- 纪中集训2020.02.05【NOIP提高组】模拟B 组总结反思——【佛山市选2010】组合数计算,生成字符串 PPMM
目录 JZOJ2290. [佛山市选2010]组合数计算 比赛时 之后 JZOJ2291. [佛山市选2010]生成字符串 比赛时 之后 JZOJ2292. PPMM 比赛时 之后 JZOJ2290. ...
- 深入理解Thread.sleep的含义
转载一篇对sleep说的非常好的一篇文章,原文http://www.cnblogs.com/ILove/archive/2008/04/07/1140419.html 我们可能经常会用到 Thread ...
- 【转】Thread.sleep(0)的意义
Thread.sleep(0)的意义 2012-03-23 17:47 2188人阅读 评论(2) 收藏 举报 windows算法unixthread 我们可能经常会用到 Thread.Sleep 函 ...
- Thread.sleep(0)的意义& 多线程
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: 假设现在是 2008-4-7 12:00:00.000,如果我调用 ...
- C# 理解Thread.Sleep()方法 ----转帖
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:1.假设现在是 2008-4-7 12:00:00.000,如果我调 ...
- 关于Thread.Sleep(0)
看到的文章,写的不错. 我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:0 ...
- Java 线程Thread.Sleep详解
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢? 思考下面这两个问题: 1.假设现在是 2008-4-7 12:00:00.000,如果 ...
- [转] 理解 Thread.Sleep 函数
原文链接:http://www.cnblogs.com/ILove/archive/2008/04/07/1140419.html 我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时 ...
- C#中Thread.sleep() 【转载】
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: 1.假设现在是 2008-4-7 12:00:00.000,如果我 ...
- 如何切入 Linux 内核源代码
Makefile不是Make Love 从前在学校,混了四年,没有学到任何东西,每天就是逃课,上网,玩游戏,睡觉.毕业的时候,人家跟我说Makefile我完全不知,但是一说Make Love我就来劲了 ...
随机推荐
- 关于CSDN博客上传图片的接口研究
代码实现 import requests from requests_toolbelt import MultipartEncoder import urllib.parse fields = { ' ...
- C++编程笔记(GPU并行编程-2)
C++与CUDA 内存管理 封装 利用标准库容器实现对GPU的内存管理 #include <iostream> #include <cuda_runtime.h> #inclu ...
- java中的自增运算
本文主要阐明java中的自增运算 1.当i ++ 与 ++ i作为单独语句时,作用与i = i +1一样 2.当赋值时,结果就不一样了 temp = i ++: 操作顺序:1)temp = i: 2) ...
- 二阶段目标检测网络-Cascade RCNN 详解
摘要 1,介绍 1.1,Faster RCNN 回顾 1.2,mismatch 问题 2,实验分析 2.1,改变IoU阈值对Detector性能的影响 2.2,提高IoU阈值的影响 2.3,和Iter ...
- VS2022,VS2019最新安裝方法
直接参照: https://www.bilibili.com/read/cv12364240/ 2022年5月30浩,亲测可用 1.下载notepad++ (必须) 2. 去微软官网下载 对应的安装 ...
- 回顾Vue计算属性VS其他语法有感
回顾Vue计算属性VS其他语法有感 重新回顾官方教程中的到计算属性和侦听器,发觉获益良多,主要就是两点: 计算属性和其他语法的比较 计算属性.侦听属性.方法.模板变量的使用 计算属性和其他语法的比较 ...
- CentOS7下搭建JumpServer
JumpServer 部署架构图 JumpServer 功能架构图 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统. JumpServer 使用 Python ...
- word取消保护
没有 文档的保护密码 可尝试用此方式,亲测有效 Excel.PPT 应该也可以,没试过 1.新建空白文档 2.插入.对象 3.点击[对象]右边的箭头,选择被加密的文件. 建议两个选项都试一下,我的第二 ...
- python之路52 ORM查询、ORM事务、查询优化、常用字段及参数、ajax方法
Q查询进阶操作 from django.db.models import Q q_obj = Q() # 1.产生q对象 q_obj.connector = 'or' # 默认多个条件的连接是and可 ...
- python进阶之路10之函数
函数前戏 name_list = ['jason', 'kevin', 'oscar', 'jerry'] # print(len(name_list)) '''突然len不准用了''' # coun ...