摘要:
不管怎么说,这都不是道紫题吧。。。 这里采用的思想有点类似轻重链剖分。 我们按照每个节点在序列里面出现的顺序,把每一个节点连出去的边都排一个序。 这样(如果序列没错)肯定会按照序列的方式遍历完全图。 所以我们就按照这个图跑一遍BFS。 一边BFS一边查看是否符合。 程序的速度不算特别快,最优解ran 阅读全文
摘要:
这道题原本写了一个很复杂的DFS,然后陷入绝望的调试。 看了一下题解发现自己完全想复杂了。 这里大概就是补充一些题解没有详细解释的代码吧。。。 (小声BB)现在最优解rank4(话说$O2$负优化什么鬼啊) 程序主题内容如下。 前面是读入数据没有什么好讲的。 在读入a的时候先判断一下有没有自环,有的 阅读全文
摘要:
这道题绝不是紫题。。。 题目的意思其实是让你求一个无向无重边图的直径。 对于求直径的问题我们以前研究过树的直径,可以两遍dfs或者两边bfs解决。 对于图显然不能这样解决,因为图上两点之间的简单路径不唯一。 那怎么解决这个问题呢? 能不能把环都搞掉呢? 于是乎,我们想到了强连通分量。 因此先用tar 阅读全文
摘要:
这道题我第一次的想法是直接判环的数量,然而事实证明实在是太naive了。 随便画个图都可以卡掉我的解法。(不知道在想什么) 这道题的正解是拓扑排序。 朴素的想法是对所有边都跑一次拓扑,但这样$O(m(n+m))$会炸,于是可以有下面的优化。 我们找到所有入度不为零的点,然后把他们每一个都删掉一条边跑 阅读全文
摘要:
这道题看起来就是个裸的拓扑排序,抄上模板就能AC。 上面这种想法一看就不现实,然鹅我第一次还真就这么写了,然后被随意hack。 我们需要注意一句话: 现在,酒店希望能求出一个最优的菜肴的制作顺序,使得小 A能尽量先吃到质量高的菜肴: 这句话什么意思呢? 看上去它是说想要一个字典序最小的排列,但我们可 阅读全文
摘要:
这道题开10倍左右一直MLE+RE,然后尝试着开了20倍就A了。。。窒息 对于这道题目,我们考虑使用线段树合并来做。 所谓线段树合并,就是把结构相同的线段树上的节点的信息合在一起,合并的方式比较类似左偏树什么的。 我们对于每个节点用权值线段树查询大于它的子节点数量,然后把当前节点并到它的父亲上面去。 阅读全文
摘要:
这道题采用权值线段树合并的解法。 首先讲一下解法中出现的两个概念:权值线段树与线段树合并。 所谓权值线段树,可以理解为维护的信息反过来的普通线段树,我个人认为值域线段树这个名字其实要准确一些。 举个例子,我们将序列$1,1,2,3,4,4,4,5,6,6$中的数依次插入,那么插入完成之后的效果图大概 阅读全文