求出DFS序
修路相当于区间减,点询
树状数组维护之

操作数要加(N-1)

#include <cstdio>
#include <cassert>
#include <string>using namespace std;int read(){int x=0, f=1;char ch=getchar();while(ch<'0' || ch>'9'){if(ch=='-')f=-f;ch=getchar();}while(ch>='0' && ch<='9'){x=x*10+(ch-'0');ch=getchar();}return x*f;
}const int MAXN=250111;
const int MAXM=250111;int N, M;struct Vert{int FE;int Dps, Dpr;int Dep;
} V[MAXN];struct Edge{int x, y, next;
} E[MAXN<<1];int Ecnt=0;void addE(int a, int b){++Ecnt;E[Ecnt].x=a;E[Ecnt].y=b;E[Ecnt].next=V[a].FE;V[a].FE=Ecnt;
}int Dfn[MAXN], DFN=0;void DFS(int at, int f=0){++DFN;Dfn[DFN]=at;V[at].Dps=DFN;for(int k=V[at].FE, to;k>0;k=E[k].next){to=E[k].y;if(to==f)   continue;V[to].Dep=V[at].Dep+1;DFS(to, at);}V[at].Dpr=DFN;
}int C[MAXN];int lowbit(int a){return a&(-a);
}void Add(int at, int v){//cout << "Add " << at << " " << v << endl;for(int i=at;i<=N;i+=lowbit(i))C[i]+=v;
}int Ask(int at){//cout << "Ask " << at << endl;int ret=0;for(int i=at;i>0;i-=lowbit(i))ret+=C[i];return ret;
}char com[10];
int p, q;int main(){N=read();for(int i=1, a, b;i<N;++i){a=read();b=read();addE(a, b);addE(b, a);}V[1].Dep=1;DFS(1);assert(DFN==N);for(int i=1, j;i<=N;++i){j=Dfn[i];Add(i, V[j].Dep);Add(i+1, -V[j].Dep);}M=read();M+=(N-1);/**/while(M--){scanf("%s", com);if(com[0]=='A'){p=read();q=read();if(V[p].Dep<V[q].Dep)   swap(p, q);Add(V[p].Dps, -1);Add(V[p].Dpr+1, 1);}else{p=read();/*p=Dfn[p];*/p=V[p].Dps;printf("%d\n", Ask(p)-1/**/);}}return 0;
}

转载于:https://www.cnblogs.com/Pickupwin/p/9095640.html

BZOJ 1103 大都市MEG相关推荐

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

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

  2. BZOJ1103: [POI2007]大都市meg

    题解:dfs序用树状数组维护即可 Problem: 1103User: c20161007Language: C++Result: AcceptedTime:4872 msMemory:23832 k ...

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

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

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

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

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

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

  6. 2017.6.21 大都市meg 思考记录

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

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

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

  8. 2019.4.summary

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

  9. [BZOJ]1071 组队(SCOI2007)

    一道比较NB的套路题. Description NBA每年都有球员选秀环节.通常用速度和身高两项数据来衡量一个篮球运动员的基本素质.假如一支球队里速度最慢的球员速度为minV,身高最矮的球员高度为mi ...

最新文章

  1. [iOS]开发者证书和描述文件的作用
  2. PMCAFF微课堂 | 产品汪如何做好“时间管理”让效率提高100倍
  3. easy Connect连接成功,但是虚拟IP地址获取失败,而导致网页无法打开
  4. pytorch-minst手写字符识别实战
  5. 基于Springboot的在线音乐网站开发与实现
  6. SVM多分类问题例子+matlab代码
  7. java下载不了_教大家电脑java安装不了怎么办
  8. 焦作大学对口计算机分数线,焦作大学录取分数线|2021焦作大学分数线|2021年焦作大学高考分数线|2021年焦作大学招生计划录取人数...
  9. 北斗通讯协议4.0 java_北斗4.0协议解析.doc
  10. 核心业务2:借款人申请借款额度
  11. 计算机C语言二级操作题之编程题
  12. Stata | 简单操作2(display)
  13. java 压缩pdf_java实现文件的压缩和解压
  14. rk3288 RTC实现定时开关机
  15. ubuntu-安装ROS Kinetic(推荐)
  16. Unity和Cocos2D在2D游戏开发上的对比
  17. Web入门----css中伪类
  18. 天涯人脉通讯录2010 - 导入模板格式说明
  19. 最佳实践 | 助您提升应用的无障碍功能
  20. (转)C#中Abstract和Virtual

热门文章

  1. aws beanstalk mysql_AWS Elastic Beanstalk
  2. booloader编写
  3. tensorflow实现梯度累计,再回传
  4. C++ 类的隐式转换
  5. ROS中使用Eigen库[不定期更新]
  6. [Jarvis OJ - PWN]——Typo(内涵peak小知识)
  7. c 语言中unsigned char类型变量占用内存大小,C数据类型
  8. java中获取绝对值的方法_Java判断绝对值的方法总结
  9. LTE小区选择和重选
  10. SVN switch 用法详解