题解: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

5
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

2
1
0
1

HINT

转载于:https://www.cnblogs.com/wang9897/p/9432050.html

BZOJ1103: [POI2007]大都市meg相关推荐

  1. [BZOJ1103][POI2007]大都市meg

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1103 这题题目好长啊...第一眼我感觉树剖就好了,一看数据范围...然后想就想不出来了.. ...

  2. BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]

    1103: [POI2007]大都市meg Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2221  Solved: 1179 [Submit][S ...

  3. BZOJ 1103: [POI2007]大都市meg

    Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了. 不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1.. ...

  4. 1103: [POI2007]大都市meg(dfs序+线段树||树状数组)

    Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了. 不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1-n ...

  5. BZOJ 1103 大都市MEG

    求出DFS序 修路相当于区间减,点询 树状数组维护之 操作数要加(N-1) #include <cstdio> #include <cassert> #include < ...

  6. 2017.6.21 大都市meg 思考记录

    实在搞不过第二轮的题了..小火车的题太劲了 所以就在其他队爷虐题的时候默默地修炼算法. 这个题挺裸的..唯一要注意的就是边权要赋到点上. 所以是这样的: 还要注意一些易错点: 1.跳重链比较的是top ...

  7. 2019.4.summary

    2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...

  8. html一行省略号变手型,鼠标移动到表格的TD上的时候显示成一个手型的样子怎么做?...

    总结CSS3新特性(Animation篇) 动画(Animation),是CSS3的亮点.//之一 通过animation属性指定@keyframe来完成关键帧动画; @keyframe用法: @ke ...

  9. BZOJ1103 大都市 DFS序 树状数组维护差分数组

    BZOJ1103 大都市 问题描述 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了. 不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次 ...

最新文章

  1. 目标检测中的特征冲突与不对齐问题
  2. PTA 基础编程题目集 7-20 打印九九口诀表 C语言
  3. 利用计算机技术教学图片,教育教学论文 科学学科如何利用计算机技术提高教学效率.doc...
  4. 关于MOSS SDK的Web Content Management
  5. 解决虚拟机linux端mysql数据库无法远程访问
  6. 银联高校极客挑战赛 初赛 第一场、第二场合集(3+3题)
  7. c语言pta按等级统计学生成绩,第九周作业
  8. ORB-SLAM3 细读单目初始化过程(上)
  9. c# const与readonly 关键字的比较
  10. 零基础学python好学吗-想要0基础学python要怎么做?python好学吗?
  11. wireshark帮你解析网络包
  12. 鸿蒙app安卓版包,支付宝鸿蒙版本下载-支付宝鸿蒙app最新版 v10.2.8.7000-优盘手机站...
  13. 提示Algorithm negotiation failed 错误该如何解决
  14. Win10 桌面图标出现空文件夹的删除及桌面图标排列问题
  15. openwrt定时任务 2021-10-08
  16. 数字基础设施可视化管理,任重而道远
  17. LINUX安装KDC服务
  18. 华图教育计算机基础知识,公共基础知识备考:计算机辅助制造
  19. cadence Virtuoso ADE原理图库中的VCVS(压控电压源)使用
  20. linux 论坛的搭建

热门文章

  1. SharePoint 2010 内容编辑器Web部件的使用方法
  2. java输出孪生素数对数_为什么孪生素数、波利尼亚克、哥德巴赫这些素数加减关系的猜想不能被证明?问题出在哪?...
  3. Javascript 强制类型转换函数
  4. 工厂方法模式与IoC/DI
  5. CSS布局 ——从display,position, float属性谈起
  6. 活动图与流程图的区别
  7. golang查找重复行
  8. 静态链接库与动态链接库的优缺点
  9. 通过nginx访问web,出现ERR_CONTENT_LENGTH_MISMATCH解决方法
  10. mybaits十三:使用collection分布查询