【NOIP2016提高A组五校联考1】排队
题目
Description
Input
Sample Input
5 4
1 2
1 3
3 4
3 5
1 4
2 4
1 2
2 5
Output
Sample Output
3
1
1
2
Data Constraint
Hint
比赛时の想法
暴力啊QAQ~~~~
正解
首先我们预处理出每一个点的优先级,就是下一个走进来的人会走到当前优先级最小的那个点,那么我们可以用一个堆来维护,每一次进一个人就出一次堆
对于操作2,我们可以用倍增来找到当前位置上面的一个最接近根节点的一个有人的节点,那么就等于这个节点的人直接走到删除的那个节点那里去了
注意在操作2完了之后要维护一下堆
那么两个操作都是log级别的
贴代码
vartree,s,ls:array[0..200005]of longint;f:array[0..100005,0..18]of longint;a,b:array[0..200005,1..2]of longint;cp:array[0..20]of longint;bz:array[0..100005]of boolean;i,j,k,l,m,n,t,x,y,cy,o,p:longint;
procedure qsort(l,r:longint);
vari,j,mid,mid1:longint;
begini:=l;j:=r;mid:=a[(i+j) div 2,1];mid1:=a[(i+j) div 2,2];repeatwhile (a[i,1]<mid) or ((a[i,1]=mid) and (a[i,2]<mid1)) do inc(i);while (a[j,1]>mid) or ((a[j,1]=mid) and (a[j,2]>mid1)) do dec(j);if i<=j thenbegina[0]:=a[i];a[i]:=a[j];a[j]:=a[0];inc(i);dec(j);end;until i>j;if i<r then qsort(i,r);if l<j then qsort(l,j);
end;
procedure star;
beginb[a[1,1],1]:=1;for i:=2 to 2*n-2 doif a[i,1]<>a[i-1,1] thenbeginb[a[i-1,1],2]:=i-1;b[a[i,1],1]:=i;end;b[a[2*n-2,1],2]:=2*n-2;
end;
procedure dfss(x:longint);
vari:longint;
beginbz[x]:=true;for i:=b[x,1] to b[x,2] doif (i<>0) and (bz[a[i,2]]=false) thenbeginf[a[i,2],0]:=x;dfss(a[i,2]);end;inc(cy);tree[cy]:=x;s[x]:=cy;
end;
procedure down(x:longint);
beginif (s[tree[x*2]]<s[tree[x]]) and (s[tree[x*2]]<s[tree[x*2+1]]) thenbegintree[0]:=tree[x];tree[x]:=tree[x*2];tree[x*2]:=tree[0];down(x*2);end elseif s[tree[x*2+1]]<s[tree[x]] thenbegintree[0]:=tree[x*2+1];tree[x*2+1]:=tree[x];tree[x]:=tree[0];down(x*2+1);end;
end;
procedure up(x:longint);
beginif x=1 then exit;if s[tree[x div 2]]>s[tree[x]] thenbegintree[0]:=tree[x div 2];tree[x div 2]:=tree[x];tree[x]:=tree[0];up(x div 2);end;
end;
procedure lca;
vari,j:longint;
beginfor j:=1 to 18 dofor i:=1 to n dof[i,j]:=f[f[i,j-1],j-1];
end;
beginassign(input,'t3.in'); reset(input);readln(n,t);for i:=1 to n-1 dobeginreadln(a[i,1],a[i,2]);a[i+n-1,1]:=a[i,2];a[i+n-1,2]:=a[i,1];end;qsort(1,2*n-2);star;cy:=0;dfss(1);cy:=n;s[0]:=maxlongint;lca;for i:=1 to n do up(i);cp[0]:=1;for i:=1 to 18 do cp[i]:=cp[i-1]*2;fillchar(bz,sizeof(bz),false);for i:=1 to t dobeginreadln(o,p);if o=1 thenfor j:=1 to p dobeginif j=p then writeln(tree[1]);bz[tree[1]]:=true;tree[1]:=0;down(1);end elsebegink:=0;while f[p,k]>0 do inc(k);dec(k);x:=p;y:=0;for j:=k downto 0 doif (f[x,j]>0) and (bz[f[x,j]]=true) thenbeginx:=f[x,j];y:=y+cp[j];end;for j:=cy downto 1 doif tree[j]=0 then break;tree[j]:=x;bz[x]:=false;up(j);writeln(y);end;end;close(input);
end.
【NOIP2016提高A组五校联考1】排队相关推荐
- 【JZOJ4817】【NOIP2016提高A组五校联考4】square
题目描述 输入 输出 样例输入 3 4 1 1 0 1 0 1 1 0 0 1 1 0 5 1 1 2 3 2 1 3 2 3 2 3 4 1 1 3 4 1 2 3 4 样例输出 1 1 1 2 2 ...
- 【NOIP2016提高A组五校联考2】running
题目 小胡同学是个热爱运动的好孩子. 每天晚上,小胡都会去操场上跑步,学校的操场可以看成一个由n个格子排成的一个环形,格子按照顺时针顺序从0 到n- 1 标号. 小胡观察到有m 个同学在跑步,最开始每 ...
- 【JZOJ4811】【NOIP2016提高A组五校联考1】排队
题目描述 输入 输出 样例输入 5 4 1 2 1 3 3 4 3 5 1 4 2 4 1 2 2 5 样例输出 3 1 1 2 数据范围 样例解释 解法 可推知原树可以转换为一个序列,即优先序列: ...
- JZOJ4808. 【NOIP2016提高A组五校联考3】书稿
Description W*H ≤ 2500000 , N,Q ≤ 200000 Solution 不难发现一滴墨水的影响范围是一个正方形 最中间的X是a,之后每往外一层就减b,知道a%b 先将a%b ...
- jzoj4230. 【五校联考4day1】淬炼神体(B组——Day3)
jzoj4230. [五校联考4day1]淬炼神体 题目 Description 王仙女将你提供的答案填在<葵花宝典>上,突然,宝典发出耀眼的白光,一股强大的吸力瞬间将仙女吸入宝典中. 一 ...
- 湖南长郡2021高考成绩查询时间,2021年湖南新高考六校、长郡十五校联考时间公布...
2021年湖南新高考六校.长郡十五校联考时间公布 导读:距离2021年高考时间仅剩不到一百天,各个省份都的高三学子都进入紧张阶段.开始了各种模拟考试.2021届湖南省炎德英才大联考的考试时间也已经公布 ...
- 4246. 【五校联考6day2】san (Standard IO)
4246. [五校联考6day2]san (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Detailed Limits D ...
- JZOJ Day4 B组 T3【五校联考1day1】我才不是萝莉控呢
题目大意: 小YYY:"小RRR 你是萝莉控吗."小RRR:"-" 为了避免这个尴尬的话题,小RRR 决定给小YYY 做一道题. 有一个长度为nnn 的正整数数 ...
- 【五校联考1day1】我才不是萝莉控呢
Description 小Y:"小R 你是萝莉控吗."小R:"-" 为了避免这个尴尬的话题,小R 决定给小Y 做一道题. 有一个长度为n 的正整数数组A,满足A ...
- [jzoj4210] 【五校联考1day1】我才不是萝莉控呢 {哈夫曼树}
题目 Description 小Y:"小R 你是萝莉控吗."小R:"-" 为了避免这个尴尬的话题,小R 决定给小Y 做一道题. 有一个长度为n 的正整数数组A, ...
最新文章
- 【Pytorch】运用英伟达DALI加速技巧可使PyTorch运算速度快4倍
- 可爱的MicrosoftAjax.js精简版(47K)
- 为什么新来的技术很难接手维护一个系统
- 太阳能控制器原理图_太阳能人体感应壁灯的电路设计
- c++分治法求最大最小值实现_快速实现分组统计,均数标准差 中位数(四分位数间距) 最大值 最小值,非常全...
- nacos使用_使用Nacos的CMDB实现微服务的就近访问!
- 女老师vs男老师的区别...
- spring学习(33):id和name
- 华为鸿蒙系统是指芯片吗_华为首部鸿蒙手机P50——不再使用麒麟芯片,拍照系统再升级...
- VS Code前端开发利器-常用快捷键
- 【CCF】201803-1 跳一跳
- 从输入url开始,完善前端体系架构
- MyBatis-Plus: 谨慎入坑
- Ubuntu镜像源下载
- 没项目经验难就业?推荐你参加“大学生就业特训营” | 100 个免费名额,先到先得!...
- 整理发布一些关于VMware vSphere的文档
- 共享计算机扫描,windows系统下怎么共享扫描仪?
- 固态硬盘安装操作系统
- This must be due to duplicate classes or playing wrongly with class loaders 1
- 【妙python】按照元素长度排序列表
热门文章
- java excel 打不开_Java使用POI生成Excel文件后打不开的问题
- 设计稿 自动html,简单的登陆页面PSD设计稿来演示转化为HTML页面的全部过程
- 新旧音标对照表与英式音标表
- Let's talk OOP Again
- 转载天涯:『天涯杂谈』 30岁公务员小勇的一点心得
- 打印端口用计算机名,如何设置打印机端口,教您设置电脑打印机端口
- 测试工程师面试宝典QA(非编程)
- httpwatch professional 破解版v9.4.17
- python八卦阴阳_GitHub - meetingFuture/godwill: 周易八卦,占一卦,知来世,肖今生。...
- deepin删除应用程序中图标