BZOJ1103: [POI2007]大都市meg
题解:dfs序用树状数组维护即可
Problem: 1103User: c20161007Language: C++Result: AcceptedTime:4872 msMemory:23832 kb
****************************************************************/#include <bits/stdc++.h>
const int MAXN=4e5+10;
#define ll long long
using namespace std;
vector<int>vec[MAXN];
ll read(){ll x=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch))x=x*10+ch-'0',ch=getchar();return f*x;
}
int fa[MAXN],dep[MAXN],num[MAXN],ans[MAXN];
int p[MAXN];int cnt;
void dfs(int v,int pre,int deep){num[v]=1;ans[v]=dep[v]=deep;fa[v]=pre;p[v]=++cnt;for(int i=0;i<vec[v].size();i++){if(vec[v][i]!=pre){dfs(vec[v][i],v,deep+1);num[v]+=num[vec[v][i]];}}
}
int n,q;
char str[11];int d[MAXN];
int get_id(int x){return x&(-x);}
void add(int x,int vul){for(int i=x;i<=n+1;i+=get_id(i))d[i]+=vul;
}
int Sum(int x){int sum=0;for(int i=x;i>0;i-=get_id(i))sum+=d[i];return sum;
}
int main(){n=read();int u,v;for(int i=1;i<n;i++)u=read(),v=read(),vec[u].push_back(v),vec[v].push_back(u);dfs(1,0,0);q=read();for(int i=1;i<=q+n-1;i++){scanf(" %s",str);if(str[0]=='A'){u=read();v=read();if(dep[u]>dep[v])swap(u,v);add(p[v],1);add(p[v]+num[v],-1);}else u=read(),printf("%d\n",dep[u]-Sum(p[u]));}
}
1103: [POI2007]大都市meg
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 3376 Solved: 1777
[Submit][Status][Discuss]
Description
在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了。
不过,她经常回忆起以前在乡间漫步的情景。昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之间有一些双
向的土路。从每个村庄都恰好有一条路径到达村庄1(即比特堡)。并且,对于每个村庄,它到比特堡的路径恰好
只经过编号比它的编号小的村庄。另外,对于所有道路而言,它们都不在除村庄以外的其他地点相遇。在这个未开
化的地方,从来没有过高架桥和地下铁道。随着时间的推移,越来越多的土路被改造成了公路。至今,Blue Mary
还清晰地记得最后一条土路被改造为公路的情景。现在,这里已经没有土路了——所有的路都成为了公路,而昔日
的村庄已经变成了一个大都市。 Blue Mary想起了在改造期间她送信的经历。她从比特堡出发,需要去某个村庄,
并且在两次送信经历的间隔期间,有某些土路被改造成了公路.现在Blue Mary需要你的帮助:计算出每次送信她需
要走过的土路数目。(对于公路,她可以骑摩托车;而对于土路,她就只好推车了。)
Input
第一行是一个数n(1 < = n < = 2 50000).以下n-1行,每行两个整数a,b(1 < = a以下一行包含一个整数m
(1 < = m < = 2 50000),表示Blue Mary曾经在改造期间送过m次信。以下n+m-1行,每行有两种格式的若干信息
,表示按时间先后发生过的n+m-1次事件:若这行为 A a b(a若这行为 W a, 则表示Blue Mary曾经从比特堡送信到
村庄a。
Output
有m行,每行包含一个整数,表示对应的某次送信时经过的土路数目。
Sample Input
1 2
1 3
1 4
4 5
4
W 5
A 1 4
W 5
A 4 5
W 5
W 2
A 1 2
A 1 3
Sample Output
1
0
1
HINT
转载于:https://www.cnblogs.com/wang9897/p/9432050.html
BZOJ1103: [POI2007]大都市meg相关推荐
- [BZOJ1103][POI2007]大都市meg
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1103 这题题目好长啊...第一眼我感觉树剖就好了,一看数据范围...然后想就想不出来了.. ...
- BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]
1103: [POI2007]大都市meg Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2221 Solved: 1179 [Submit][S ...
- BZOJ 1103: [POI2007]大都市meg
Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了. 不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1.. ...
- 1103: [POI2007]大都市meg(dfs序+线段树||树状数组)
Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了. 不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1-n ...
- BZOJ 1103 大都市MEG
求出DFS序 修路相当于区间减,点询 树状数组维护之 操作数要加(N-1) #include <cstdio> #include <cassert> #include < ...
- 2017.6.21 大都市meg 思考记录
实在搞不过第二轮的题了..小火车的题太劲了 所以就在其他队爷虐题的时候默默地修炼算法. 这个题挺裸的..唯一要注意的就是边权要赋到点上. 所以是这样的: 还要注意一些易错点: 1.跳重链比较的是top ...
- 2019.4.summary
2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...
- html一行省略号变手型,鼠标移动到表格的TD上的时候显示成一个手型的样子怎么做?...
总结CSS3新特性(Animation篇) 动画(Animation),是CSS3的亮点.//之一 通过animation属性指定@keyframe来完成关键帧动画; @keyframe用法: @ke ...
- BZOJ1103 大都市 DFS序 树状数组维护差分数组
BZOJ1103 大都市 问题描述 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了. 不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次 ...
最新文章
- 目标检测中的特征冲突与不对齐问题
- PTA 基础编程题目集 7-20 打印九九口诀表 C语言
- 利用计算机技术教学图片,教育教学论文 科学学科如何利用计算机技术提高教学效率.doc...
- 关于MOSS SDK的Web Content Management
- 解决虚拟机linux端mysql数据库无法远程访问
- 银联高校极客挑战赛 初赛 第一场、第二场合集(3+3题)
- c语言pta按等级统计学生成绩,第九周作业
- ORB-SLAM3 细读单目初始化过程(上)
- c# const与readonly 关键字的比较
- 零基础学python好学吗-想要0基础学python要怎么做?python好学吗?
- wireshark帮你解析网络包
- 鸿蒙app安卓版包,支付宝鸿蒙版本下载-支付宝鸿蒙app最新版 v10.2.8.7000-优盘手机站...
- 提示Algorithm negotiation failed 错误该如何解决
- Win10 桌面图标出现空文件夹的删除及桌面图标排列问题
- openwrt定时任务 2021-10-08
- 数字基础设施可视化管理,任重而道远
- LINUX安装KDC服务
- 华图教育计算机基础知识,公共基础知识备考:计算机辅助制造
- cadence Virtuoso ADE原理图库中的VCVS(压控电压源)使用
- linux 论坛的搭建
热门文章
- SharePoint 2010 内容编辑器Web部件的使用方法
- java输出孪生素数对数_为什么孪生素数、波利尼亚克、哥德巴赫这些素数加减关系的猜想不能被证明?问题出在哪?...
- Javascript 强制类型转换函数
- 工厂方法模式与IoC/DI
- CSS布局 ——从display,position, float属性谈起
- 活动图与流程图的区别
- golang查找重复行
- 静态链接库与动态链接库的优缺点
- 通过nginx访问web,出现ERR_CONTENT_LENGTH_MISMATCH解决方法
- mybaits十三:使用collection分布查询