摘要: 不管怎么说,这都不是道紫题吧。。。 这里采用的思想有点类似轻重链剖分。 我们按照每个节点在序列里面出现的顺序,把每一个节点连出去的边都排一个序。 这样(如果序列没错)肯定会按照序列的方式遍历完全图。 所以我们就按照这个图跑一遍BFS。 一边BFS一边查看是否符合。 程序的速度不算特别快,最优解ran 阅读全文
posted @ 2018-10-24 21:29 Ilverene 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 这道题原本写了一个很复杂的DFS,然后陷入绝望的调试。 看了一下题解发现自己完全想复杂了。 这里大概就是补充一些题解没有详细解释的代码吧。。。 (小声BB)现在最优解rank4(话说$O2$负优化什么鬼啊) 程序主题内容如下。 前面是读入数据没有什么好讲的。 在读入a的时候先判断一下有没有自环,有的 阅读全文
posted @ 2018-10-24 21:28 Ilverene 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 这道题绝不是紫题。。。 题目的意思其实是让你求一个无向无重边图的直径。 对于求直径的问题我们以前研究过树的直径,可以两遍dfs或者两边bfs解决。 对于图显然不能这样解决,因为图上两点之间的简单路径不唯一。 那怎么解决这个问题呢? 能不能把环都搞掉呢? 于是乎,我们想到了强连通分量。 因此先用tar 阅读全文
posted @ 2018-10-24 07:51 Ilverene 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 这道题我第一次的想法是直接判环的数量,然而事实证明实在是太naive了。 随便画个图都可以卡掉我的解法。(不知道在想什么) 这道题的正解是拓扑排序。 朴素的想法是对所有边都跑一次拓扑,但这样$O(m(n+m))$会炸,于是可以有下面的优化。 我们找到所有入度不为零的点,然后把他们每一个都删掉一条边跑 阅读全文
posted @ 2018-10-24 07:50 Ilverene 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 这道题看起来就是个裸的拓扑排序,抄上模板就能AC。 上面这种想法一看就不现实,然鹅我第一次还真就这么写了,然后被随意hack。 我们需要注意一句话: 现在,酒店希望能求出一个最优的菜肴的制作顺序,使得小 A能尽量先吃到质量高的菜肴: 这句话什么意思呢? 看上去它是说想要一个字典序最小的排列,但我们可 阅读全文
posted @ 2018-10-24 07:49 Ilverene 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 这道题开10倍左右一直MLE+RE,然后尝试着开了20倍就A了。。。窒息 对于这道题目,我们考虑使用线段树合并来做。 所谓线段树合并,就是把结构相同的线段树上的节点的信息合在一起,合并的方式比较类似左偏树什么的。 我们对于每个节点用权值线段树查询大于它的子节点数量,然后把当前节点并到它的父亲上面去。 阅读全文
posted @ 2018-10-24 07:47 Ilverene 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 这道题采用权值线段树合并的解法。 首先讲一下解法中出现的两个概念:权值线段树与线段树合并。 所谓权值线段树,可以理解为维护的信息反过来的普通线段树,我个人认为值域线段树这个名字其实要准确一些。 举个例子,我们将序列$1,1,2,3,4,4,4,5,6,6$中的数依次插入,那么插入完成之后的效果图大概 阅读全文
posted @ 2018-10-24 07:44 Ilverene 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 更新地址:传送门 权值线段树 所谓权值线段树,就是一种维护值而非下标的线段树,我个人倾向于称呼它为值域线段树。 举个栗子:对于一个给定的数组,普通线段树可以维护某个子数组中数的和,而权值线段树可以维护某个区间内数组元素出现的次数。 在实现上,由于值域范围通常较大,权值线段树会采用离散化或动态开点的策 阅读全文
posted @ 2018-10-23 21:54 Ilverene 阅读(2110) 评论(0) 推荐(0) 编辑
摘要: 题面:传送门。 老师说今天要考一道线段树合并,然后。。。然后这道题我就GG了。(当然可以用线段树合并写,只是比较复杂) 有人赛时想了个贪心,然后被机房巨佬hack了,结果在hack的过程中巨佬想出了正解。。。 贪心思路: 对于一个节点,取右边的(大一点的)肯定更优。 (其实很好hack啊,随便搞一条 阅读全文
posted @ 2018-10-23 16:57 Ilverene 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 看了一下题解里的zkw线段树,感觉讲的不是很清楚啊(可能有清楚的但是我没翻到,望大佬勿怪)。 决定自己写一篇。。。希望大家能看明白。。。 zkw线段树是一种优秀的非递归线段树,速度比普通线段树快两道三倍,同时代码量不大。 (当然,存在很多线段树可做zkw不可做的题) zkw线段树的核心思路就是先修改 阅读全文
posted @ 2018-10-19 22:03 Ilverene 阅读(149) 评论(0) 推荐(0) 编辑