题目描述:

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

数据范围:

\(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. SPI总线介绍和裸机编程分析

    一.SPI总线结构 SPI(Serial Peripheral Interface)串行外设接口,是一种高速的,全双工,同步的通信总线.采用主从模式(Master Slave)架构,支持多个slave ...

  2. 二叉树入门(洛谷P1305)

    题目描述 输入一串完全二叉树,用遍历前序打出. 输入输出格式 输入格式: 第一行为二叉树的节点数n. 后面n行,每一个字母为节点,后两个字母分别为其左右儿子. 空节点用*表示 输出格式: 前序排列的完 ...

  3. c++ 获取文件图标,类型名称,属性 SHGetFileInfo

    SHGetFileInfo是一个相当实用的Windows API函数. // [MoreWindows工作笔记4] 获取文件图标,类型名称,属性 SHGetFileInfo #include < ...

  4. dubbo-monitor安装

    dubbo-monitor安装 cd /opt/tools/ #包目录 tar -C /opt/ -xf dubbo-monitor-simple--assembly.tar.gz cd dubbo- ...

  5. 分布式系统理论基础2 :CAP

    本文转自:https://www.cnblogs.com/bangerlee/p/5328888.html 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到 ...

  6. log4j日志记录到文件

    要写日志信息到一个文件中,必须使用org.apache.log4j.FileAppender.有以下FileAppender的配置参数: FileAppender配置: 属性 描述 immediate ...

  7. layer通过父页面调用子页面的方法及属性

    引言 在使用layer.js的过程中,需要通过layer.open()以iframe的形式打开特定的页面,同时需要用layer的按钮对打开的页面进行提交及重置操作,但是苦于不知如何在父页面调用子页面的 ...

  8. Python2和Python3的安装以及pycharm安装,path环境变量的配置

    一:安装python2.7过程步骤 1.官网下载pythonan安装包: ·输入python搜索 ·找到python官网,点击进入 ·鼠标放在Downloads上,在新弹出的选项中选择Windows, ...

  9. 34-python基础-python3-列表删除元素-remove()方法-del语句-pop()方法

    1-remove()方法 根据值删除元素.  remove()方法传入一个列表中的值,它将从被调用的列表中删除. 如果该值在列表中出现多次,只有第一次出现的值会被删除. 如果要删除的值可能在列表中出现 ...

  10. A 小G数数

    题目链接 题解: 此题可以直接暴力求解,(甚至可以四层循环 具体思想便是a[k]充当两种身份,同时判断两种不同情况,然后计数便可以了 /** /*@author victor /*language c ...