摘要: ~~这题输入数据好坑啊。。~~ 本题解是给像我一样的蒟蒻写的,可能略显啰嗦,已经懂了的大佬可以出门右转,~~去切掉IOI~~ 我们先分析题目,将每一个$w_i$,它的计算方式写成如下方式: $w_i=a_1 w_{i 1}+a_2 w_{i 2}+\cdots+a_n w_{i n}$ 再注意到题中 阅读全文
posted @ 2019-05-14 11:29 TheShadow 阅读(222) 评论(0) 推荐(0) 编辑
摘要: ~~又是一个学数据结构学傻了的人~~ ~~才不会承认是看到Splay,觉得可以写平衡树才进来的呢~~ Description: 给出一个序列,问排序后,选取两个区间,使其没有重合部分,且每个区间右端点减去左端点不大于k,求这两个区间长度之和的最大值。 前置技能:FHQ Treap、线段树 ~~(不会 阅读全文
posted @ 2019-05-03 17:04 TheShadow 阅读(180) 评论(0) 推荐(0) 编辑
摘要: ~~我最近是不是数据结构学傻了啊。。。~~ 这道题看是1e5,所以复杂度为$O(nlogn)$的是完全可以跑过去的,然后看题,要求的对于每个数满足要求的区间的长度之和,我们自然而然的就可以想到用 FHQ Treap 来维护这个序列了。 ps:不会FHQ的小伙伴们可以学习一下,这也是一个比较好用的数据 阅读全文
posted @ 2019-04-30 09:53 TheShadow 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 差不多是Dijkstra的裸题吧。。。 这道题可以分为来回两个阶段。 去的时候很简单,直接用一次Dijkstra,然后统计答案。 回来的时候就有些巧妙了,虽然表面上是每个点回到起点,但是何尝不可将其看成从起点出发,逆着每个点过来的路去找一次每个点?所以只需要存边的时候处理一下,然后直接跑Dijkst 阅读全文
posted @ 2019-04-05 22:06 TheShadow 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 二分答案+堆优Dijkstra 这个题有些巧妙。 首先,因为要在油量耗完之前跑到终点,所以我们可以用最短路。只要从$s$出发到$t$,它的最短距离大于油量,我们就可以断定它一定走不通,直接输出$ 1$。 然后因为要求最大值最小,所以考虑二分答案。用一个数组来储存点的值从大到小的排序,然后边界范围设置 阅读全文
posted @ 2019-04-05 21:06 TheShadow 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 这是一个不错的树形结构的题,由于本蒟蒻不会推什么神奇的公式~~其实是懒得推。。。~~,所以很愉快的发现其实只需要两个点之间的关系为祖父和儿子、或者是兄弟即可。 然后问题就变得很简单了,只需要做一个正常的DFS,遍历整棵树,同时判断有没有祖父,如果有就计算,然后遍历自己的儿子,每次判断最大的一个,然后 阅读全文
posted @ 2019-04-05 18:57 TheShadow 阅读(120) 评论(0) 推荐(0) 编辑