AC日记——[Sdoi2008]Cave 洞穴勘测 bzoj 2049
思路:
lct模板;
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; #define maxn 100005 int n,m,ch[maxn][],f[maxn],st[maxn]; bool rev[maxn]; inline void in(int &now)
{
char Cget=getchar();now=;
while(Cget>''||Cget<'') Cget=getchar();
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
} inline bool root(int now)
{
return ch[f[now]][]!=now&&ch[f[now]][]!=now;
} inline void pushdown(int k)
{
int l=ch[k][],r=ch[k][];
if(rev[k])
{
rev[k]^=,rev[l]^=,rev[r]^=;
swap(ch[k][],ch[k][]);
}
} inline void rotate(int now)
{
int fa=f[now],ffa=f[fa],l,r;
l=(ch[fa][]==now),r=l^;
if(!root(fa)) ch[ffa][ch[ffa][]==fa]=now;
f[now]=ffa,f[fa]=now,f[ch[now][r]]=fa;
ch[fa][l]=ch[now][r],ch[now][r]=fa;
} void splay(int now)
{
int top=;st[++top]=now;
for(int i=now;!root(i);i=f[i]) st[++top]=f[i];
for(int i=top;i;i--) pushdown(st[i]);
while(!root(now))
{
int fa=f[now],ffa=f[fa];
if(!root(fa))
{
if((ch[fa][]==now)^(ch[ffa][]==fa)) rotate(now);
else rotate(fa);
}
rotate(now);
}
} void access(int now)
{
for(int i=;now;now=f[now]) splay(now),ch[now][]=i,i=now;
} void rever(int now)
{
access(now),splay(now),rev[now]^=;
} void link(int x,int y)
{
rever(x),f[x]=y,splay(x);
} void cut(int x,int y)
{
rever(x),access(y),splay(y);ch[y][]=f[x]=;
} int find(int now)
{
access(now);splay(now);
int pos=now;
while(ch[pos][]) pos=ch[pos][];
return pos;
} int main()
{
int u,v;char ch[];
in(n),in(m);
for(int i=;i<=m;i++)
{
scanf("%s",ch);in(u),in(v);
if(ch[]=='C') link(u,v);
else if(ch[]=='D') cut(u,v);
else if(find(u)==find(v)) puts("Yes");else puts("No");
}
return ;
}
AC日记——[Sdoi2008]Cave 洞穴勘测 bzoj 2049的更多相关文章
- BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 LCT
2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnli ...
- bzoj 2049: [Sdoi2008]Cave 洞穴勘测 动态树
2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 3119 Solved: 1399[Submit] ...
- bzoj 2049: [Sdoi2008]Cave 洞穴勘测 (LCT)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2049 题面: 2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 1 ...
- BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 (动态树入门)
2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1528 Solved: 644[Submit][ ...
- 2049: [Sdoi2008]Cave 洞穴勘测
2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 7475 Solved: 3499 [Submi ...
- 2049: [Sdoi2008]Cave 洞穴勘测(LCT)
2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 9962 Solved: 4824[Submit] ...
- 【bzoj2049】[Sdoi2008]Cave 洞穴勘测——线段树上bfs求可撤销并查集
题面 2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 12030 Solved: 6024 Desc ...
- 【bzoj2049】[Sdoi2008]Cave 洞穴勘测 link-cut-tree
2016-05-30 11:04:51 学习了link-cut-tree 二中神犇封禹的讲义感觉讲的超级清晰易懂啊(没有的可以q窝 算是模板吧 #include<bits/stdc++.h&g ...
- 【LCT】BZOJ2049 [SDOI2008]Cave 洞穴勘测
2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 10059 Solved: 4863[Submit ...
随机推荐
- doget,doPost在底层走的是service
doget,doPost在底层走的是service 因为在源码上 先执行service方法 然后再调用doget,doPost方法
- media="screen"是什么意思?
<link rel="stylesheet" href="css/main.css" type="text/css" media=&q ...
- 关于IE缓存
为了提高访问网页的速度,Internet Explorer浏览器会采用累积式加速的方法,将你曾经访问的网页内容(包括图片以及cookie文件等)存放在电脑里.这个存放空间,我们就称它为IE缓存.以后我 ...
- BZOJ3533 [Sdoi2014]向量集 【线段树 + 凸包 + 三分】
题目链接 BZOJ3533 题解 我们设询问的向量为\((x_0,y_0)\),参与乘积的向量为\((x,y)\) 则有 \[ \begin{aligned} ans &= x_0x + y_ ...
- jsp电子商务 购物车实现之三 购物车
CartServlet参考代码 : public void doPost(HttpServletRequest req, HttpServletResponse resp) throws Servle ...
- BZOJ1415: [Noi2005]聪聪和可可 最短路 期望概率dp
首先这道题让我回忆了一下最短路算法,所以我在此做一个总结: 带权: Floyed:O(n3) SPFA:O(n+m),这是平均复杂度实际上为O(玄学) Dijkstra:O(n+2m),堆优化以后 因 ...
- 你知道HTML标签设计的本意吗?
“DIV+CSS”这个词汇不知道害了多少人,也许其提出者本意并没有错,但是跟风者从表现曲解了其意思,认为整个页面就应当是DIV+CSS文件的组合.这样做,对于视觉上并没有什么影响,因为还原了之前设计的 ...
- Hadoop NameNode元数据相关文件目录解析
在<Hadoop NameNode元数据相关文件目录解析>文章中提到NameNode的$dfs.namenode.name.dir/current/文件夹的几个文件: 1 current/ ...
- is
MyType a = null; if (a is MyType) == False
- maven工程开启jetty调试
转摘自:http://czj4451.iteye.com/blog/1942437 准备工作: a. 在pom.xml中配置jetty插件: <plugins> <plugin> ...