题目描述:

删掉一个边,看其是否联通,图是一棵树,在线,多组询问。

数据范围:

\(n \leq 10^5\)

题解:

(休闲一下)

这种直接用dfs序即可,直接讨论连边的位置就行。

还有一种做法懒得打了..就是说考虑维护某一条链上有哪些点,当你询问的时候只要那个询问通道包含这个破坏的通道就能联通,否则就不行,可以开\(vector\),如果叉特别多,那么每个链的点数就很少,如果叉少,相对的点就多点。

\(dfs\)的时候把\(vector\)里的东西下传即可,可以维护一个方向的特征值(自己随便定义)

#include <bits/stdc++.h>
using namespace std;
#define io freopen("planets.in","r",stdin),freopen("planets.out","w",stdout)
const int MAXN = 1e5 + 10;
const int mod = 1e5 + 7;
int cnt = 0;
struct edge {
int to;
int nxt;
}e[MAXN << 1];
int head[MAXN << 1];
int ans[MAXN];
void add(int u,int v) {
e[++cnt].to = v;
e[cnt].nxt = head[u];
head[u] = cnt;
return;
} void Add(int u,int v) {
add(u,v);
add(v,u);
return;
} int read () {
int q=0,f=1;char ch=getchar();
while(!isdigit(ch)){
if(ch=='-')f=-1;ch=getchar();
}
while(isdigit(ch)){
q=q*10+ch-'0';ch=getchar();
}
return q*f;
}
int dfn[MAXN << 1];
int idx;
int low[MAXN << 1];
int dis[MAXN << 1];
void dfs(int x) {
dfn[x] = ++idx;
for(int i = head[x];i;i = e[i].nxt) {
int y = e[i].to;
if(!dfn[y]) {
dis[y] = dis[x] + 1;
dfs(y);
}
}
low[x] = ++idx;
}
int ok(int top,int x,int y) {
int st = dfn[top];
int ed = low[top];
int l = dfn[x];
int r = dfn[y];
if((st <= l and l <= ed) and (r > ed or r < st)) return 1;
else if((st <= r and r <= ed) and (l > ed or l < st)) return 1;
return 0;
}
int L[MAXN];
int R[MAXN];
int n,q,c;
int main () {
io;
n = read(),q = read(),c = read();
for(int i = 1;i < n; ++i) {
int x = read(),y = read();
Add(x,y);
L[i] = x;
R[i] = y;
}
dfs(1);
int m = 0;
for(int i = 1;i <= q; ++i) {
int k = read(),x = read(),y = read();
k ^= m;x ^= m;y ^= m;
int l = L[k];
int r = R[k];
if(dis[l] < dis[r]) swap(l,r);
if(ok(l,x,y)) {
ans[i] = 1;
cout<<"YES"<<endl;
}
else {
ans[i] = 0;
cout<<"NO"<<endl;
}
m = (m + (c * (ans[i] + 1) * i % mod) % mod + mod) % mod;
}
return 0;
}

LYOI2018 Hzy's Planets的更多相关文章

  1. 「LYOI2018 Summer」Hzy's Rabbit Candy----拓扑排序问题

    「LYOI2018 Summer」Hzy's Rabbit Candy 题目描述 Hzy 和她的 m 只兔兔在一个 n 个点 m 条边的有向无环图上玩. 为了让兔兔们开心,Hzy 带了一些糖.Hzy ...

  2. hzy 和zsl 的生存挑战

    Problem Description zsl 和hzy 来到了臭臭城堡,打算挑战臭臭城堡的大魔王hyz,大魔王hyz设置了这样的一个挑战:1. zsl 和hzy两个人各自来到一间密室,期间两人无法以 ...

  3. 发布Qt Quick桌面应用程序的方法(使得planets在XP上运行)

    发布Qt Quick桌面应用程序的方法 Qt是一款优秀的跨平台开发框架,它可以在桌面.移动平台以及嵌入式平台上运行.目前Qt 5介绍程序发布的文章帖子比较少.大家又非常想要知道如何发布Qt应用程序,于 ...

  4. vulnhub靶场之THE PLANETS: EARTH

    准备: 攻击机:虚拟机kali.本机win10. 靶机:THE PLANETS: EARTH,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnh ...

  5. POJ 3174 Alignment of the Planets (暴力求解)

    题意:给定 n 个坐标,问你三个共线的有多少组. 析:这个题真是坑啊,写着 n <= 770,那么一秒时间,三个循环肯定超时啊,我一直不敢写了,换了好几种方法都WA了,也不知道为什么,在比赛时坑 ...

  6. 题解-hzy loves segment tree I

    Problem 题目概要:给定一棵 \(n\) 个节点的树,点有点权,进行 \(m\) 次路径取\(\max\)的操作,最后统一输出点权 \(n\leq 10^5,m\leq 5\times 10^6 ...

  7. 229B Planets

    传送门 题目大意 有编号1~n的星球,在不用的星球间共有m个传送门,任意两个星球间传送门不超过1个,每个传送门需要花费一定的时间,但是在某时刻会在某星球有旅客到达,这时要一定等到没有旅客到达的时候才能 ...

  8. 【Codeforces 229B】Planets

    [链接] 我是链接,点我呀:) [题意] [题解] 设dis[i]表示到达i号传送器的最早时刻. 显然,虽然有那么多的出发时刻的限制,但我们还是越早到越好的. 因为你到得越早,出发的时间肯定不会比到达 ...

  9. Vulnhub - THE PLANETS: EARTH

    环境配置 从www.vulnhub.com下载靶机,在VMware中导入,自动分配IP 主机发现 通过对内网主机的扫描,VMware为目标主机 端口扫描 使用nmap对主机进行扫描 发现443端口信息 ...

随机推荐

  1. python reduce()函数使用

    reduce()的使用方法形如reduce(function, iterable[, initializer]),它的形式和map()函数一样.不过参数f(x)必须有两个参数,initializer是 ...

  2. 如何理解c和c++的复杂类型声明

    曾经碰到过让你迷惑不解.类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明. 我们将从每天都能碰到的较简单 ...

  3. (9)C++ 对象和类

    一.类 1.访问控制 class student { int age;//默认私有控制 public: string name; double weight; }; 2.成员函数 定义成员函数时,使用 ...

  4. java的继承 和super关键字 构造器

    面向对象的特性二继承: 继承的好处: 1.减少代码的冗余.提高了代码的复用性 2.便于功能的扩展 3.为之后多态的使用,提供了前提 继承的格式: class A extends B{} A:子类.派生 ...

  5. Windows 8.1 PLSQL_32连接到RHEL6.1 Oracle10gr2_64

    目录 目录 系统环境 连接Oracle Server 系统环境 操作系统 Windows 8.1 RHEL6.1 软件 Oracle10gr2 PL/SQL instantclient-basic-w ...

  6. 2019 ACM-ICPC 南京 现场赛 H. Prince and Princess

    题意 王子想要娶公主,但是需要完成一个挑战:在一些房间中找出公主在哪. 每个房间有一个人,他们彼此知道谁在哪个房间.可以问他们三种问题: 你是谁? 在某个房间是谁? 公主在哪个房间? 有三类人,一类一 ...

  7. PHP CURL 模拟form表单上传遇到的小坑

    1:引用的时候 $parans ['img']=new \CURLFile($param); 传入的文件 在PHP版本5.5以上记得new CURLFile 不然会上传不成功 /** * http p ...

  8. HDU 1261 字串数(排列组合)

    字串数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  9. Pytest参数传递

    import pytest@pytest.fixture()def login_r(open_browser):#调用login时,发现需要先打开浏览器,所以改成先打开浏览器,在登陆 print('输 ...

  10. Win7下设置一键关闭所有程序的功能

    (文章仅作个人整理和笔记) 在很多情况下,上班族发生这种情况的比较多吧,忙碌的一天下来,准备下班走人的时候,发现自己的电脑打开了好多程序,需要一个一个去关闭,那么有没有什么方法可以实现一键快速关闭所有 ...