摘要: https://daniu.luogu.org/problem/show?pid=2680 使完成所有运输计划的时间最短,也就是使时间最长的运输计划耗时最短。最大值最小问题考虑用二分答案,每次check(mid)检查时间最长的运输计划耗时是否小于等于mid,二分出使得check(mid)==true 阅读全文
posted @ 2017-09-16 11:22 ssttkkl 阅读(482) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problem/show?pid=2827 首先考虑暴力:每次都是拿最长的蚯蚓,容易想到用堆。每次除拿出来的以外所有的蚯蚓都增长,容易想到用一个懒惰标记来记录所有的蚯蚓增长了多少。取最大的元素出来后加上标记的值,放元素进去的时候减去标记的值。这时已经可以骗 阅读全文
posted @ 2017-09-16 10:44 ssttkkl 阅读(454) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problem/show?pid=2296 满足条件的路径:路径上的所有点的出边所指向的点都与终点连通。反过来,不满足条件的路径:路径上至少一点的出边所指向的点不与终点连通。考虑把所有与终点不连通的点以及指向他们的点都删掉,再一遍BFS求出最短路径。 具体 阅读全文
posted @ 2017-09-16 10:17 ssttkkl 阅读(330) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problem/show?pid=2312 对于30%的数据,n<=2,暴力带入试解。对于50%的数据,ai很大,结合高精乘法和霍纳算法暴力代入试解。高精乘法,时间复杂度是很恐怖的而且我不懂写。注意到虽然ai很大,但是m还是在int范围内的。 继续考虑暴力 阅读全文
posted @ 2017-09-15 22:34 ssttkkl 阅读(164) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problem/show?pid=1941 从某一点开始飞直到飞出地图最少点击屏幕的次数,显然只和该点的坐标唯一相关,没有后效性,考虑用DP解。令f(i,j)为从点(i,j)飞出地图最少点击次数。得状态转移方程:f(i,j)=min{f(i-1,j-k*x 阅读全文
posted @ 2017-09-15 22:26 ssttkkl 阅读(224) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problem/show?pid=1351 既然是一棵树,就先转化成有根树。有根树上距离为2的点对,路径可能长下面这样: 枚举路径上的中间点X。 第一种情况 对于点X(X的儿子数≥2),它的每一个儿子i与其他的儿子对权值和的贡献为Wi*(sum-Wi),则 阅读全文
posted @ 2017-09-15 22:14 ssttkkl 阅读(259) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problem/show?pid=2831 BFS 看到N这么小就可以想到搜索,求最少步数显然应该用BFS。 在这题中过两猪可以唯一确定一条抛物线,每一步可以发射两只猪确定的一条抛物线(打下这条抛物线上的所有猪),也可以发射一条只经过一只猪的抛物线(只打下 阅读全文
posted @ 2017-07-06 00:17 ssttkkl 阅读(294) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problem/show?pid=1955 并查集+离散化。 先执行所有x=y问题,即合并x和y。 再依次执行所有x!=y问题,即查询x和y是否处于同一集合。如果是,则有x=y且x!=y,不满足条件。 如果所有的x!=y都得到满足,这组数据就可以满足。 注 阅读全文
posted @ 2017-07-02 13:15 ssttkkl 阅读(175) 评论(0) 推荐(0) 编辑
摘要: https://daniu.luogu.org/problem/show?pid=2146 树剖裸题。树上(指题目给的树)每个结点有安装和未安装两种状态,对应计数1和0。树链剖分到线段树后,维护计数的和。 安装操作即把节点x到根的路径上所有节点的计数改为1,统计更改了多少节点并输出。 删除操作即把节 阅读全文
posted @ 2017-07-02 11:57 ssttkkl 阅读(223) 评论(0) 推荐(0) 编辑
摘要: https://daniu.luogu.org/problem/show?pid=2042 一道伸展树维护数列的很悲伤的题目,共要维护两个标记和两个数列信息,为了维护MAX-SUM还要维护从左端开始的数列的最大和及到右端结束的数列的最大和。 按照伸展树的套路,给数列左右两边加上不存在的边界节点,给每 阅读全文
posted @ 2017-07-02 11:15 ssttkkl 阅读(452) 评论(0) 推荐(0) 编辑