BZOJ 1103 大都市MEG
求出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相关推荐
- BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]
1103: [POI2007]大都市meg Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2221 Solved: 1179 [Submit][S ...
- BZOJ1103: [POI2007]大都市meg
题解:dfs序用树状数组维护即可 Problem: 1103User: c20161007Language: C++Result: AcceptedTime:4872 msMemory:23832 k ...
- BZOJ 1103: [POI2007]大都市meg
Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了. 不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1.. ...
- 1103: [POI2007]大都市meg(dfs序+线段树||树状数组)
Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了. 不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1-n ...
- [BZOJ1103][POI2007]大都市meg
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1103 这题题目好长啊...第一眼我感觉树剖就好了,一看数据范围...然后想就想不出来了.. ...
- 2017.6.21 大都市meg 思考记录
实在搞不过第二轮的题了..小火车的题太劲了 所以就在其他队爷虐题的时候默默地修炼算法. 这个题挺裸的..唯一要注意的就是边权要赋到点上. 所以是这样的: 还要注意一些易错点: 1.跳重链比较的是top ...
- html一行省略号变手型,鼠标移动到表格的TD上的时候显示成一个手型的样子怎么做?...
总结CSS3新特性(Animation篇) 动画(Animation),是CSS3的亮点.//之一 通过animation属性指定@keyframe来完成关键帧动画; @keyframe用法: @ke ...
- 2019.4.summary
2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...
- [BZOJ]1071 组队(SCOI2007)
一道比较NB的套路题. Description NBA每年都有球员选秀环节.通常用速度和身高两项数据来衡量一个篮球运动员的基本素质.假如一支球队里速度最慢的球员速度为minV,身高最矮的球员高度为mi ...
最新文章
- [iOS]开发者证书和描述文件的作用
- PMCAFF微课堂 | 产品汪如何做好“时间管理”让效率提高100倍
- easy Connect连接成功,但是虚拟IP地址获取失败,而导致网页无法打开
- pytorch-minst手写字符识别实战
- 基于Springboot的在线音乐网站开发与实现
- SVM多分类问题例子+matlab代码
- java下载不了_教大家电脑java安装不了怎么办
- 焦作大学对口计算机分数线,焦作大学录取分数线|2021焦作大学分数线|2021年焦作大学高考分数线|2021年焦作大学招生计划录取人数...
- 北斗通讯协议4.0 java_北斗4.0协议解析.doc
- 核心业务2:借款人申请借款额度
- 计算机C语言二级操作题之编程题
- Stata | 简单操作2(display)
- java 压缩pdf_java实现文件的压缩和解压
- rk3288 RTC实现定时开关机
- ubuntu-安装ROS Kinetic(推荐)
- Unity和Cocos2D在2D游戏开发上的对比
- Web入门----css中伪类
- 天涯人脉通讯录2010 - 导入模板格式说明
- 最佳实践 | 助您提升应用的无障碍功能
- (转)C#中Abstract和Virtual