题目链接

一开始自己想的是multiset维护顺序结构,然后查找所有的值差最小时候找加入的当前点的前驱以及后继,然后查找相邻两个的就用线段树维护一个差最小值~,但是后来发现是全局的,直接再开一个multiset维护相邻段之差就行了,但是set的话要删除,也挺费时间的,不是所有点相邻都往set里边装,比如在某一个段加一个点的时候他前一个点的差值直接用一个ans来储存最小,然后输出的时候差的set里边最小值与ans比较一下就行。

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<set>
#include<stack>
#include<vector>
#include<map>
#include<queue>
#include<time.h>#define myself i,l,r
#define lson i<<1
#define rson i<<1|1
#define Lson i<<1,l,mid
#define Rson i<<1|1,mid+1,r
#define half (l+r)/2
#define inff 0x3f3f3f3f
#define lowbit(x) x&(-x)
#define PI 3.14159265358979323846
#define min4(a, b, c, d) min(min(a,b),min(c,d))
#define min3(x, y, z) min(min(x,y),min(y,z))
#define pii make_pair
#define pr pair<int,int>
#define li __int128
void print(li x) {if(x>9) print(x/10);putchar(x%10+48);}
const int dir[4][2] = {0, -1, -1, 0, 0, 1, 1, 0};
typedef long long ll;
typedef unsigned long long ull;
const ll inFF = 9223372036854775807;
using namespace std;
const int maxn=1e6+5;
int st[maxn],ed[maxn];
multiset<int> s,ss;
char str[20];
int main()
{int n,m,x,val;cin>>n>>m;int ans=inff,anss=inff;for(int i=1;i<=n;i++){scanf("%d",&x);st[i]=ed[i]=x;}for(int i=1;i<=n;i++){if(i<n) ss.insert(abs(st[i]-st[i+1]));auto it=s.lower_bound(st[i]);if(it!=s.end()) ans=min(ans,*it-st[i]);if(it!=s.begin()) it--,ans=min(ans,st[i]-*it);s.insert(st[i]);}for(int i=1;i<=m;i++){scanf("%s",str);if(strcmp(str,"INSERT")==0){scanf("%d %d",&x,&val);auto it=s.lower_bound(val);if(it!=s.end()) ans=min(ans,*it-val);if(it!=s.begin()) it--,ans=min(ans,val-*it);s.insert(val);anss=min(anss,abs(ed[x]-val));if(x!=n){it=ss.lower_bound(abs(st[x+1]-ed[x]));ss.erase(it);ss.insert(abs(st[x+1]-val));}ed[x]=val;}else if(strcmp(str,"MIN_SORT_GAP")==0) printf("%d\n",ans);else printf("%d\n",min(anss,*ss.begin()));}return 0;
}

洛谷P1110 报表统计 multiset stl好题相关推荐

  1. 刷题-洛谷-P1179 数字统计

    P1179 数字统计-C语言 1.题目 2.解题过程 结果: 代码: //洛谷 P1179 数字统计 #include <stdio.h> //#define MIN 1 //#defin ...

  2. 洛谷P1119 灾后重建 图论 脑洞题

    洛谷P1119 灾后重建 图论   脑洞题   floyd    floyd中 k 的意义 通过前 k 个点 作为中间的节点 更新 i 到 j 的最短路 也就是 只经过前 k 个点 的最短路 帮助理解 ...

  3. 题解洛谷1179数字统计 记录问题

    文章目录 数字统计 一.思路1 二.思路二 优化 1.想法 2.代码 二.继续优化 不用类型转换 总结 数字统计 题目描述 请统计某个给定范围[L, R][L,R]的所有整数中,数字 22 出现的次数 ...

  4. 洛谷入门1【顺序结构】题单题解

    目录 超级玛丽 字母转换 数字反转 再分肥皂水 小鱼的游泳时间 小学数学N合1 三角形面积 苹果和虫子 对角线 上学迟到 [入门1]顺序结构 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu ...

  5. Luogu P1110 [ZJOI2007]报表统计 multiset

    沿用了学长的$multiset$ 然后这道题可以看到我的程序中有两行注释,它在我看来和他们下面的代码没区别,但是我们发现,C++会先调用后面的参数,所以$--it$会被先执行 ... ... ... ...

  6. 洛谷 1608 路径统计

    [题解] 最短路计数的模板题吧..要把重边判掉.. 1 #include<cstdio> 2 #include<algorithm> 3 #define N 2010 4 #d ...

  7. 【洛谷】P1567 统计天数

    题目地址: https://www.luogu.com.cn/problem/P1567 题目描述: 炎热的夏日,KC非常的不爽.他宁可忍受北极的寒冷,也不愿忍受厦门的夏天.最近,他开始研究天气的变化 ...

  8. 洛谷OJ U552 守墓人 线段树模板题

    题目描述 Description 在一个荒凉的墓地上 有一个令人尊敬的守墓人, 他看守的墓地从来 没有被盗过, 所以人们很放心的把自己的先人的墓 安顿在他那 守墓人能看好这片墓地是必然而不是偶然... ...

  9. 洛谷 P1955 [NOI2015]程序自动分析(沙雕题)

    题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3-代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相 ...

最新文章

  1. Python将图像分割成小块然后将所有的块重新拼接在一起
  2. 双目立体视觉建立深度图_双目立体视觉测量系统应用
  3. python的sys.path
  4. 【Java网络编程(四)】手写TCP聊天室——控制台版
  5. 为旗下硬件产品服务,LG推出基于SLAM技术的3D摄像头
  6. poj 3352Road Construction(无向双连通分量的分解)
  7. matlab2c使用c++实现matlab函数系列教程-normstat函数
  8. AWS codecommit 的学习记录
  9. Spring Boot 如何快速改造老项目?原来这么爽
  10. 小D课堂 - 新版本微服务springcloud+Docker教程_6-01 微服务网关介绍和使用场景
  11. php大马程序_php大马是什么
  12. 深入浅出SCSI子系统(六)SCSI 磁盘驱动
  13. 傅里叶变换与希尔伯特变换
  14. WAP1.x协议栈浅析-WTP协议
  15. 薪酬体系:了解越多,满意越高
  16. 【单片机】按键消抖及原理(硬件和软件方法详解)
  17. 释迦牟尼佛和阿弥陀佛有何区别?
  18. system verilog基础知识总结与复习(随机化)
  19. 直击AWE2018:当AI遇见LED,诸葛小明给光更多可能
  20. Python——字典类型理论及应用实例

热门文章

  1. HarmonyOS UI开发 AdaptiveBoxLayout(自适应盒子布局) 的使用
  2. ListView 添加头部 和尾部 布局 (addHeaderView 和 addFooterView)
  3. Manifest merger failed : Attribute application@allowBackup value=(false) 解决方法
  4. Speed4Web 绿色纯净版
  5. 2022-2028年中国车载摄像头行业市场前瞻与投资战略规划分析报告
  6. 删除maven仓库中的LastUpdated文件
  7. eclipse或者myeclipse的代码提示功能
  8. Ruby 之 Block, Proc, Lambda 联系--区别,转载
  9. c语言x在二进制表示下1的个数,算法:计算十进制数字在二进制表示1的个数,...
  10. 如何定义带有可选参数的函数python_Python如何定义有可选参数的元类