BZOJ 1103 大都市
dfs序+BIT。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxv 250050
#define maxe 500500
using namespace std;
int n,x,y,m,g[maxv],nume=,w[maxv],mx[maxv],dis[maxv],val[maxv],fath[maxv],times=;
char s[];
struct edge
{
int v,nxt;
}e[maxe];
int lowbit(int x)
{
return (x&(-x));
}
void addedge(int u,int v)
{
e[++nume].v=v;
e[nume].nxt=g[u];
g[u]=nume;
}
void dfs(int x)
{
w[x]=mx[x]=++times;
for (int i=g[x];i;i=e[i].nxt)
{
int v=e[i].v;
if (v!=fath[x])
{
dis[v]=dis[x]+;fath[v]=x;
dfs(v);
mx[x]=max(mx[x],mx[v]);
}
}
}
void add(int pos,int x)
{
for (int i=pos;i<=n+;i+=lowbit(i))
val[i]+=x;
}
void modify()
{
scanf("%d%d",&x,&y);
if (dis[x]>dis[y]) swap(x,y);
add(w[y],);add(mx[y]+,-);
}
void ask()
{
scanf("%d",&x);int regis=x;x=w[x];
int ret=;
while (x)
{
ret+=val[x];
x-=lowbit(x);
}
printf("%d\n",dis[regis]-ret);
}
int main()
{
scanf("%d",&n);
for (int i=;i<=n-;i++)
{
scanf("%d%d",&x,&y);
addedge(x,y);addedge(y,x);
}
dfs();
scanf("%d",&m);
for (int i=;i<=n+m-;i++)
{
scanf("%s",s);
if (s[]=='A') modify();
else ask();
}
return ;
}
BZOJ 1103 大都市的更多相关文章
- BZOJ 1103 大都市(dfs序+树状数组)
应该是一道很水的题吧... 显然可以用树链剖分解决这个问题,虽然不知道多一个log会不会T.但是由于问题的特殊性. 每次修改都是将边权为1的边修改为0,且询问的是点i到根节点的路径长度. 令点i到根节 ...
- 树状数组 - BZOJ 1103 [POI2007]大都市
bzoj 1103 [POI2007]大都市 描述 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员 Blue Mary也开始骑着摩托车传递邮件了.不过,她经常回忆起以前在乡间漫步的情景. ...
- BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]
1103: [POI2007]大都市meg Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2221 Solved: 1179[Submit][Sta ...
- BZOJ 1103: [POI2007]大都市meg
1103: [POI2007]大都市meg Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2189 Solved: 1160[Submit][Sta ...
- 数据结构(线段树):BZOJ 1103 [POI2007]大都市meg
1103: [POI2007]大都市meg Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1791 Solved: 925[Submit][Stat ...
- BZOJ 1103: [POI2007]大都市meg( 树链剖分 )
早上数学考挂了...欲哭无泪啊下午去写半个小时政治然后就又可以来刷题了.. 树链剖分 , 为什么跑得这么慢... ------------------------------------------- ...
- 【BZOJ 1103】 [POI2007]大都市meg
Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了.不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1..n ...
- Hdu 3887 Counting Offspring \ Poj 3321 Apple Tree \BZOJ 1103 [POI2007]大都市meg
这几个题练习DFS序的一些应用. 问题引入: 给定一颗n(n <= 10^5)个节点的有根树,每个节点标有权值,现有如下两种操作: 1.C x y 以节点x的权值修改为y. 2.Q x ...
- BZOJ 1103 [POI2007]大都市meg(树状数组+dfs序)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1103 [题目大意] 给出一棵树,每条边的经过代价为1,现在告诉你有些路不需要代价了, ...
随机推荐
- swift学习网站
http://letsswift.com/category/swiftguide/http://www.imooc.com/course/list?is_easy=3&c=ioshttp:// ...
- test1
test1test1test1test1test1test1test1test1test1test1test1test1test1test1test1test1test1test1test1test1 ...
- magento后台无法登陆的问题
解决方法: 打开 magento/app/code/core/Mage/Core/Model/Session/Abstract/varien.php 将// set session cookie pa ...
- Microsoft SDK 中Sample案例之Amcap項目 的运行方法(转)
http://blog.csdn.net/erick08/article/details/7194575 Microsoft SDK 中Sample之Amcap 的运行方法 写这篇文章的由 ...
- Linux信号处理2
引言 先看以下两个信号量: 13)SIGPIPE 当管道读端关闭,再往管道写东西,会发出SIGPIPE信号 17)SIGCHLD 子进程退出会向父进程发出SIGCHLD信号,系统默认处理是 ...
- 说说Java中的代理模式
今天看到传智播客李勇老师的JDBC系列的第36节——通过代理模式来保持用户关闭连接的习惯.讲的我彻底蒙蔽了,由于第一次接触代理模式,感到理解很难,在博客园找到一篇文章,先记录如下: 引用自java设计 ...
- 初始BOM
1.BOM(Browser Object Model),定义了操作浏览器的借口 2.常用的BOM对象:Window, History,Navigator,Screen, Location等 3.由于浏 ...
- 李洪强iOS开发之苹果使用预览截图
李洪强iOS开发之苹果使用预览截图 01 在预览的图片中选中你要截得区域 02 - command + C 03 - Command + N 04 - Command + S (保存)
- 查看服务器硬件配置信息(cpu/内存)
1.查看cpu情况: 方法一: Linux下CPU相关的参数保存在 /proc/cpuinfo 文件里 cat /proc/cpuinfo |more 方法二: 采用命令 dmesg ...
- 5分钟理解iaas paas saas三种云服务区别
随着云计算的大热,向我咨询云计算相关问题的童鞋也越来越多,其中最近问的比较多的一个问题便是云计算中的pass是什么意思?整好今天有空,统一给大家解释下pass是什么意思?和Iass.Sass之间有什么 ...