【agc002d】Stamp Rally
题目大意
无向图中,每次询问从x和y分别出发,一共经过z个点,使需要走过编号最大的边最小。
解题思路
对于暴力,我们对于每个询问二分答案ans,将1~ans的边加入,用并查集维护,如果x和y在同一个并查集,则判断该并查集大小是否大于等于z,否则判断该x所在并查集和y所在并查集大小的和是否大于等于z。
考虑如何优化,整体二分,二分边的编号,同时对于每个编号区间[l,r],记录一个询问集合,表示该集合的询问的答案在区间[l,r]中。同时用可撤销并查集维护。
#include <cmath>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <queue>
#include <map>
#include <bitset>
#include <set>
const int maxlongint=2147483647;
const int mo=1e9+7;
const int N=100005;
using namespace std;
struct arr
{
int x,y,z,p;
}ask[N],out[N];
int n,m,q,a[N][2],ans[N],fa[N],val[N],t[N],size[N],tv[N];
int get(int x)
{
return x==fa[x]?x:get(fa[x]);
}
void mesh(int x,int y)
{
int xx=get(x),yy=get(y);
if(xx==yy) return;
if(val[xx]>val[yy]) fa[yy]=xx,t[++t[0]]=yy,size[xx]+=size[yy],tv[t[0]]=val[xx];
else
{
fa[xx]=yy,t[++t[0]]=xx,size[yy]+=size[xx];
tv[t[0]]=val[yy];
if(val[xx]==val[yy]) val[yy]++;
}
}
void del()
{
int x=t[t[0]];
size[fa[x]]-=size[x],val[fa[x]]=tv[t[0]];
fa[x]=x;
t[0]--;
}
void dc(int l,int r,int L,int R)
{
if(L>R) return;
if(l==r)
{
for(int i=L;i<=R;i++) ans[ask[i].p]=l;
return;
}
int mid=(l+r)>>1,mm=L-1,sign=t[0];
for(int i=l;i<=mid;i++) mesh(a[i][0],a[i][1]);
for(int i=L;i<=R;i++)
{
int xx=get(ask[i].x),yy=get(ask[i].y),vv=(xx==yy?size[xx]:size[xx]+size[yy]);
if(vv>=ask[i].z) swap(ask[i],ask[++mm]);
}
dc(mid+1,r,mm+1,R);
for(;t[0]>sign;del());
dc(l,mid,L,mm);
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++) scanf("%d%d",&a[i][0],&a[i][1]);
scanf("%d",&q);
for(int i=1;i<=q;i++) scanf("%d%d%d",&ask[i].x,&ask[i].y,&ask[i].z),ask[i].p=i;
for(int i=1;i<=n;i++) fa[i]=i,size[i]=1;
dc(1,m,1,q);
for(int i=1;i<=q;i++) printf("%d\n",ans[i]);
}
【agc002d】Stamp Rally的更多相关文章
- 【BZOJ3832】[POI2014]Rally(拓扑排序,动态规划)
[BZOJ3832][POI2014]Rally(拓扑排序,动态规划) 题面 BZOJ,权限题 洛谷 题解 这题好强啊,感觉学了好多东西似的. 首先发现了一个图画的很好的博客,戳这里 然后我来补充一下 ...
- [AGC002D] Stamp Rally
确实有想到重构树,不过没有继续下去的思路. 可能是对重构树的性质不太懂. 这种题目我们可以二分答案,考虑怎么\(check\)呢,整体二分+并查集,建出重构树,找去第一个小于这个数的方点,查询他的子树 ...
- 【HDU4348】【主席树】To the moon
Problem Description BackgroundTo The Moon is a independent game released in November 2011, it is a r ...
- 【DG】[三思笔记]一步一步学DataGuard
[DG][三思笔记]一步一步学DataGuard 它有无数个名字,有人叫它dg,有人叫它数据卫士,有人叫它data guard,在oracle的各项特性中它有着举足轻理的地位,它就是(掌声)..... ...
- 【RAC】RAC相关基础知识
[RAC]RAC相关基础知识 1.CRS简介 从Oracle 10G开始,oracle引进一套完整的集群管理解决方案—-Cluster-Ready Services,它包括集群连通性.消息和锁. ...
- 【恢复】 Redo文件丢失的恢复
第一章 Redo文件丢失的恢复 1.1 online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...
- 【BBED】BBED模拟并修复ORA-08102错误
[BBED]BBED模拟并修复ORA-08102错误 1.1 BLOG文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...
- python基础学习十 logging模块详细使用【转载】
很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,主要用于输出 ...
- 【RMAN】RMAN跨版本恢复(下)--大版本异机恢复
[RMAN]RMAN跨版本恢复(下)--大版本异机恢复 BLOG文档结构图 ORACLE_SID=ORA1024G 关于10g的跨小版本恢复参考:http://blog.chinaunix.net/u ...
随机推荐
- 「java.util.concurrent并发包」之 ReentrantReadWriteLock
一 引言 在多线程的环境下,对同一份数据进行读写,会涉及到线程安全的问题.比如在一个线程读取数据的时候,另外一个线程在写数据,而导致前后数据的不一致性:一个线程在写数据的时候,另一个线程也在写,同样也 ...
- Netty的那些”锁”事
Netty锁事的五个关键点: ① 在意锁的对象和范围 --> 减少粒度 ② 注意锁的对象本身大小 --> 减少空间占用 ③ 注意锁的速度 --> 提高速度 ④不同场景选择不同 ...
- springboot2.0整合freemarker快速入门
目录 1. 快速入门 1.1 创建工程pom.xml文件如下 1.2 编辑application.yml 1.3 创建模型类 1.4 创建模板 1.5 创建controller 1.6 测试 2. F ...
- PDO原生分页
** PDO分页** 1.PDO连接数据库 $dbh=new PDO('mysql:host=127.0.0.1;dbname=03a','root','root');//使用pdo 2.接收页码 $ ...
- python商城项目总结
项目概括 本项目用于针对Django框架的练习,主要分为前端和后端两部分.前端负责用户注册.登录.商品展示以及添加购物车和显示订单列表的功能:后端负责会员信息.商品类别.商品信息的增删改查以及订单状态 ...
- Ubuntu下安卓模拟器的选择
8G内存的话,一般开个AS,再启动默认的模拟器的话,基本就有点卡了,如果再打开Idea,很容易卡死. 所以两个spingboot的后台服务只能直接命令行跑个jar包,不方便调试,webview加载的v ...
- 在react项目当中做导航守卫
距离上一篇文章,似乎已经过去好久了. 确实是最近相对忙了一点,本身是用vue重构之前一个传统的项目,就自己一个人写.而且,在稍微闲暇之余,想着同时用react也重构一遍,也算是对react的学习吧!毕 ...
- 树莓派安装使用RXTX
在RaspberryPi树莓派上使用RXTX(RXTX的源码安装)Linux 编译RXTX(JAVA串口开发)源码 如果为windows系统,则使用rxtx比较简单,到http://fizzed.co ...
- EasyUI_前台js_分页
1.html: <table id="DataTb" title="客户信息" class="easyui-datagrid" sty ...
- WCF寄宿windows服务一
如果只是寄宿单个wcf服务,方法很简单,步骤:1.创建好一个windows服务.关于windows服务内容见:http://www.cnblogs.com/zhaow/p/7866916.html2. ...