题目链接:题目链接
当时这个题卡了好久,用了两个map一直超时。
一直想用并查集,但是一直想不出来怎么用。赛后问的lzh大佬才知道的。
map+并查集。
1操作的时候,就把这个值的map设置为x+1。即mp[x]=x+1;
2操作的时候,如果这个值再map里面找不到,就说明还可以用,就输出这个值。如果找得到,就说明不能用了。那我们就用find函数去找能用的那个点,并且压缩路径。假如2,3,4,5不能用。查询2的时候,find会把map[2,3,4,5]的值都变为6.这样就压缩路径,节省了大量的时间。
代码如下:

#include<bits/stdc++.h>
#define ll long long
using namespace std;map<int,int> mp;
inline int find(int x)
{map<int,int> ::iterator it=mp.find(x);if(it==mp.end()) return x;else {return mp[x]=find(mp[x]);}
}
int main()
{int op,x,n,m;while(~scanf("%d%d",&n,&m)){while(m--){scanf("%d%d",&op,&x);if(op==1) mp[x]=x+1;else{if(mp.find(x)==mp.end()) printf("%d\n",x);else{int ans=find(x);printf("%d\n",ans);}}}}
}

队友比赛的时候用的set过的。
代码如下:

#include<stdio.h>
#include<algorithm>
#include<set>
using namespace std;
int main(){int n,m;scanf("%d%d",&n,&m);set<int>s;while(m--){int maxx=0;int op;int x;scanf("%d%d",&op,&x);if(op==1){s.insert(x);}else{set<int>::iterator it;it=s.lower_bound(x);if(it==s.end()||(*it)!=x){printf("%d\n",x);continue;}else{it++;int ans=x+1;for(;it!=s.end();it++){if(ans!=(*it)){break;}else{ans++;}}printf("%d\n",ans);}}}
}

努力加油a啊,(o)/~

so easy(2019徐州icpc网络赛B)相关推荐

  1. 2019 徐州icpc网络赛 E. XKC's basketball team

    题库链接: https://nanti.jisuanke.com/t/41387 题目大意 给定n个数,与一个数m,求ai右边最后一个至少比ai大m的数与这个数之间有多少个数 思路 对于每一个数,利用 ...

  2. New Year and Old Subsequence CodeForces - 750E(线段树+矩阵dp)2019南昌icpc网络赛Hello 2019

    A string t is called nice if a string "2017" occurs in t as a subsequence but a string &qu ...

  3. XKC's basketball team(2019徐州站网络赛E线段树)

    题目链接:题目链接嘤嘤嘤 一开始以为是主席树,想明白了之后线段树就可以.从后往前遍历,线段树二分查找离这个数最远的数字.返回那个数的下标.这个数查找完了就把这个数插入到线段树里. 代码如下: #inc ...

  4. Factories Gym - 102222G(2018宁夏邀请赛暨2019银川icpc网络预选赛)

    第一场icpc网络赛,出的去年宁夏邀请赛原题.c题还没有读完就有ak的了..(滑稽) Byteland has nn cities numbered from 11 to nn, and n−1n−1 ...

  5. ICPC网络赛第二场G Limit

    ICPC网络赛第二场G Limit 题意: 给你数组a和b,求解: 1≤n≤100000,−100≤ai,bi≤100,0≤t≤5.1≤n≤100000,−100≤a_{i},b_{i}≤100,0≤ ...

  6. icpc网络赛第二场K Meal

    icpc网络赛第二场K Meal 题意: 有n个人,n个菜, 现在n个人轮流吃菜,起初S中有n个菜,第i个人会在还没拿走的菜中随机选一个,拿走第j个菜的概率为ai,j∑k∈Sai,k\frac{a_{ ...

  7. J Red-Black Paths(ICPC网络赛第一场)

    J Red-Black Paths(ICPC网络赛第一场) 题意: 有n个点,m次操作,有三种操作: 1 u v:从u向v建一个有向边 2 u:将点u染成红色 3 u: 将点u染成黑色 4 查询最新生 ...

  8. 2018ACM-ICPC徐州赛区网络赛: A. Hard to prepare(递推)

    2018ACM-ICPC徐州赛区网络赛: A. Hard to prepare(递推) After Incident, a feast is usually held in Hakurei Shrin ...

  9. 2019 icpc徐州区域网络赛题解09.07

    A题: 链接:https://nanti.jisuanke.com/t/41383 思路:模型是经典常见的斐波拉契博弈模型,套上一个java大数的扩展中国剩余定理即可. 扩展中国剩余定理解出方程,判断 ...

最新文章

  1. 在Windows Azure公有云环境部署企业应用
  2. Noriben沙箱:分分钟搞定恶意软件
  3. STL---string
  4. 计算机组成原理知识点概叙
  5. 我眼中的JavaScript函数式编程
  6. Python类三种方法,函数传参,类与实例变量
  7. python类和实例化
  8. windows下安装subversion
  9. iOS中XML解析 (一) TBXML (实例:打印xml内容及存储到数组)
  10. WebMvc中MultipartFile文件上传
  11. OPPO 40万年薪招应届生,狂揽芯片人才;恶意差评小米新手机,一用户被判赔3万元;谷歌开源全同态加密通用转译器|极客头条...
  12. a new weekday
  13. 禁止执行某些讨厌的程序,如tadb.exe
  14. DSP数字信号处理实验--CCS基础入门
  15. macOS开机启动项设置
  16. 免费抠人像、抠图网站
  17. python爬取微信公众号network_python如何爬取搜狗微信公众号文章永久链接的思路解析...
  18. 软件经验|使用消费级无人机干测绘(四)ContexCapture软件介绍
  19. SpringBoot全局配置文件介绍
  20. 自定义 Metal 渲染视图

热门文章

  1. IOS开发基础之摇奖机案例
  2. java actor和线程有什么区别_Scala Actor与java并发编程的区别
  3. 硬盘安装以及磁盘分区和检测(笔记本R7000)
  4. 渗透测试报告甲乙概述
  5. lodop 小票排版_lodop+art-template实现web端漂亮的小票样式打印
  6. QImage、 QPixmap、 QBitmap、 QPicture区别
  7. BETA、RC、ALPHA、Release、GA 等版本号的意义
  8. 程序开机全屏且不能见任何windows界面、不能使用系统热键
  9. c语言调试出错误怎么改,C语言调试常见错误及修改方法(附习题)
  10. 使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享