题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1103

题目大意:在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了。
不过,她经常回忆起以前在乡间漫步的情景。昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之间有一些双
向的土路。从每个村庄都恰好有一条路径到达村庄1(即比特堡)。并且,对于每个村庄,它到比特堡的路径恰好
只经过编号比它的编号小的村庄。另外,对于所有道路而言,它们都不在除村庄以外的其他地点相遇。在这个未开
化的地方,从来没有过高架桥和地下铁道。随着时间的推移,越来越多的土路被改造成了公路。至今,Blue Mary
还清晰地记得最后一条土路被改造为公路的情景。现在,这里已经没有土路了——所有的路都成为了公路,而昔日
的村庄已经变成了一个大都市。 Blue Mary想起了在改造期间她送信的经历。她从比特堡出发,需要去某个村庄,
并且在两次送信经历的间隔期间,有某些土路被改造成了公路.现在Blue Mary需要你的帮助:计算出每次送信她需
要走过的土路数目。(对于公路,她可以骑摩托车;而对于土路,她就只好推车了。)

做法:初看这题,这不是树链剖分傻逼题吗,询问链长,修改边的权值,时间复杂度nlogn ^2,估计是过不了的,放弃了这一念头,然后我发现可以dfs序+线段树,区间修改,单点查询,于是我愉快地敲起了代码,水过了!!interesting!!7000+ms,为什么rank1辣么快,3000+ms,搜了下题解,发现可以dfs序+树状数组,这里重点介绍一下这种方法,受教了!!

dfs序+树状数组+神奇思路:

上图为样例图,我们发现它的dfs序列是1223345541,我们设lx为x号节点进栈的时间戳,rx为x号节点出栈的时间戳,我们除1号节点外的所有节点的lx为1,rx为-1,如果我们要询问x号节点到root的距离,就是lx的前缀和,为什么呢?因为进栈我们可以理解为往这个点方向走了一条边,出栈就是离开这棵子树,这完美地解决了分叉的问题,orz....,那么怎么处理修改操作呢,显然我们只需把深度更大的那个点的lx和rx设为0,因为这条边已毫无意义了,所以这题dfs序+树状数组即可。

bzoj1103: [POI2007]大都市meg的更多相关文章

  1. [bzoj1103][POI2007]大都市meg(树状数组+dfs序)

    1103: [POI2007]大都市meg Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2031  Solved: 1069[Submit][Sta ...

  2. BZOJ1103 [POI2007]大都市meg 【树剖】

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

  3. bzoj1103: [POI2007]大都市meg(树链剖分)

    1103: [POI2007]大都市meg 题目:传送门 简要题意: 给你一棵树,给出每条边的权值,两个操作:1.询问根到编号x的最短路径的权值和  2.修改一条边的边权 题解: 很明显啊,看懂了题基 ...

  4. BZOJ1103 [POI2007]大都市meg dfs序 线段树

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1103 题意概括 一棵树上,一开始所有的边权值为1,我们要支持两种操作: 1. 修改某一条边的权值为 ...

  5. [BZOJ1103][POI2007]大都市meg dfs序+树状数组

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

  6. BZOJ1103[POI2007]大都市meg 题解

    题目大意: 有一棵树,最先每条边的权值是1,然后给出n+m-1个操作,操作有两种:1.询问一个点到根的路径上的权值和:2.将一条边的权值改为0. 思路: 用dfs序将树化为序列,在dfs序中我们会保存 ...

  7. BZOJ1103 [POI2007]大都市meg(DFS序)

    题目:一颗树,单边修改,链上查询..实际上链是根到结点的链.网上好像有其他做法,我的想法是这样的: 先不看修改,毫无疑问查询只是查询结点的深度:而修改一条边会有什么影响:影响是且只是以边上深度最深结点 ...

  8. 【dfs序】【树状数组】bzoj1103 [POI2007]大都市meg

    预处理出每个点到根节点的土路数,插到一个树状数组里,然后每次修改只会对子树中的节点造成影响,于是相当于区间修改.点查询了. #include<cstdio> using namespace ...

  9. 树状数组【bzoj1103】: [POI2007]大都市meg

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

随机推荐

  1. MakeCode 递归生成资源文件

    static void yieldDir(DirectoryInfo dir, int depth, StringBuilder sb1, StringBuilder sb2) { var first ...

  2. Html网页使用jQuery传递参数并获取Web API的数据

    昨天Insus.NET有开始学习Web API,<ASP.NET MVC的Web Api的实练>http://www.cnblogs.com/insus/p/4334316.html .其 ...

  3. performSelector的原理以及用法

    一.performSelector调用和直接调用区别下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便做 ...

  4. .net core注入时作用域的说明

    Transient:每次获取实例都是新实例. Scoped:每次web请求都是新实例,在同一web请求是相同的实例. Singleton:实例只创建一次,以后的每次获取都是这一实例.

  5. Spring 依赖注入方式详解

    平常的Java开发中,程序员在某个类中需要依赖其它类的方法. 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想,即依赖类不由 ...

  6. javascript 位运算

    位运算博大精深,本文总结下基本的位运算的概念. 1.整数的二进制码 位操作符用于在最基本的层次上,即按内存中表示数值的位来操作数值.ECMAScript中的所有数值都以IEEE-754 64位格式存储 ...

  7. SQLServer(MSSQL)、MySQL、SQLite、Access相互迁移转换工具 DB2DB v1.4

    最近公司有一个项目,需要把原来的系统从 MSSQL 升迁到阿里云RDS(MySQL)上面.为便于测试,所以需要把原来系统的所有数据表以及测试数据转换到 MySQL 上面.在百度上找了很多方法,有通过微 ...

  8. 曼慧尼特u检验(两个样本数据间有无差异)

    曼-惠特尼U检验(Mann-Whitney检验) How the Mann-Whitney test works Mann-Whitney检验又叫做秩和检验,是比较没有配对的两个独立样本的非参数检验. ...

  9. CSS中的行为——expression

    IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript脚本关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性.就是说CSS属性后面可以是一段J ...

  10. centos 服务器内存管理

    du su /目录/ 查看改目录大小 ls -lht /  查看文件详情,显示文件大小(直观) df -h 查看系统内存占用情况