首先对于序列上一点,它对答案的贡献只有与它的前驱和后驱(前提颜色相同)构成的点对,

于是想到用set维护每个颜色,修改操作就是将2个set暴力合并(小的向大的合并),每次插入时更新答案即可

颜色数要离散化,或者用map也行

Code

#include <cstdio>
#include <set>
#include <map>
#define N 100010
using namespace std;int n,m,Ans=2147483647;
map<int,set<int>> A;inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}void upd(int c,int p){auto it=A[c].lower_bound(p);if(it!=A[c].end()) Ans=min(Ans,(*it)-p);if(it!=A[c].begin()) --it,Ans=min(Ans,p-(*it));A[c].insert(p);
}int main(){n=read(),m=read();for(int i=1;i<=n;++i){int x=read();upd(x,i);}for(;m--;){int x=read(),y=read();if(x==y){printf("%d\n",Ans);continue;}//考虑特殊情况if(A[x].size()>A[y].size()) swap(A[x],A[y]);for(int it:A[x]) upd(y,it);A[x].clear();//合并后应清空printf("%d\n",Ans);}return 0;
}

转载于:https://www.cnblogs.com/void-f/p/9325630.html

「LibreOJ#516」DP 一般看规律相关推荐

  1. LOJ #516. 「LibreOJ β Round #2」DP 一般看规律

    题目描述 给定一个长度为 n 的序列 a,一共有 m 个操作. 每次操作的内容为:给定 x,y,序列中所有 x 会变成 y. 同时我们有一份代码: int ans = 2147483647; for ...

  2. 「SAP技术」SAP 如何看序列号被包在哪些HU里?

    「SAP技术」SAP 如何看序列号被包在哪些HU里? 事务代码SE16 ,表名OBJK, 输入物料号,序列号,HeadTable 输入值SER06, 查询结果如下, 根据objlist, 去表ser0 ...

  3. 官方出台「码农计划」,3年培养10万「码农」,我看必须点赞

    loonggg 读完需要 6 分钟 速读仅需 2 分钟 大家好,我是校长. 最近有一件事郑州市人民政府出圈了,那就是前几天郑州市人民政府出台了<大数据人才培养"码农计划"实施 ...

  4. 教科书级「时间轴」画法,看完我服了!

    上次给大家分享PPT时间轴绘制技巧后,我们在后台众多"涨知识了"的夸夸声中,发现了一条(不太和谐)颇有见地的提问,"如果时间节点特别多,比如历史时间轴这种,该怎么画更方便 ...

  5. 阅读量超1亿!应聘要求自曝「恋爱经历」你怎么看?

    昨日,一则 #女子应聘人事被要求写恋爱经历# 的消息登上热搜,点进去一看,阅读量已超过1亿,吸引了无数网友的关注. 事情是这样的,有网友反映,在应聘江西南昌某家公司时,工作人员给的<应聘人员登记 ...

  6. 「高分收藏」初学者必看的C语言基础知识体系

    C语言简洁,使用方便灵活,能直接访问物理地址,并进行高效的位运算.生成的目标文件质量高,执行效率高,但这是相对而言的,比汇编语言的效率还是低了15%左右.数据处理尤其是图像处理能力强,可移植性也好. ...

  7. 多线程必考的「生产者 - 消费者」模型,看乔戈里这篇文章就够了

    这里是<壹齐学多线程>系列的第 3 篇 生产者 - 消费者模型 Producer-consumer problem 是一个非常经典的多线程并发协作的模型,在分布式系统里非常常见.也是面试中 ...

  8. LOJ504「LibreOJ β Round」ZQC 的手办

    https://loj.ac/problem/504 题解 对于区间取\(\max\),这个比较好办,直接在线段树上打标记就行了. 如果让我们弹出前\(n\)个数,我们可以用类似超级钢琴的思想,队列中 ...

  9. ​第3大品牌「鞋王」沦陷,看历史王者的产品史

    百丽.富贵鸟.达芙妮,这些耳熟能详的品牌鞋企你还记得吗? 俗称"三驾马车"的三大品牌鞋王近几年相继落市: 2017年百丽国际退市 2019年富贵鸟宣告破产, 2020年达芙妮贴牌求 ...

  10. 从「搭子」文化,看融云如何助力垂类社交应用增长

    互联网人拜佛 be like

最新文章

  1. Docker怎么修改hosts
  2. anaconda怎么查看python版本-anaconda如何查看并管理python环境
  3. 手动配置mysql_手动配置Mysql,无需安装的方法以及Mysql的一些基本命令
  4. JSP的三六九四七(三大指令、六大标签、九大内置对象、四大作用域、七个动作指令)
  5. powerdesigner15(pd)+Oracle 11g 开发小问题
  6. mysql5.7转移_mysql从5.7.17迁移到5.7.22业务报错
  7. python的ctypes模块详解数组_python ctypes结构数组
  8. Django-2- 模板路径查找,模板变量,模板过滤器,静态文件引用
  9. 对于大家族Sring这些你究竟了解吗
  10. [VB.net]飞龙·网页及贴吧操作II
  11. Django可扩展吗? [关闭]
  12. VB.NET水晶报表控件经验总结
  13. VEGAS Pro 18序列号 PC上最佳的入门级视频编辑软件
  14. 极域电子教室卸载、忘记密码解决方案
  15. libtorch-gpu推理时占用CPU 100%问题解决
  16. Json文件简单读写
  17. java工具类书写规范
  18. 小牛电动为何沉迷于打造“社区文化”?
  19. 去除最新版WinRAR的弹窗广告
  20. java tcp 多人聊天_Java TCP简易多人聊天室内

热门文章

  1. 随机生成大小为100的范围是100-1000的不重复的数组
  2. Undefined symbols for architecture i386的错误
  3. 【读书笔记】钢铁是怎么炼成的
  4. [转]关于SilverLight:你需要知道的十件事情
  5. 以一定概率执行某段代码(Python实现)
  6. macOS安装过程中“应用副本已损坏”的解决方案
  7. iOS 面试题分析(二)
  8. javaScript---ES6解构赋值
  9. HDU 2824 The Euler function 欧拉函数
  10. Neutron中的网络I/O虚拟化