上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 83 下一页
摘要: 嘟嘟嘟 好题,好题…… 看这个修改和询问,就知道要么是求完dfs序后线段树维护,要么是树剖。又因为这道题都是子树的操作,没有链上的,所以线段树就够了。 然而重点不是这个。这道题最麻烦的是线段树pushdown时对于每一个节点打的标记都不一样,因为每一条边上的能力值不一样。这也是这道题最巧妙的一点:我 阅读全文
posted @ 2018-10-24 20:15 mrclr 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题面好难找:嘟嘟嘟 贪心 + dp。 首先要按bi的降序排序,让每一次减少大的数尽量靠前。为啥咧?于是我们就需要证明:令sum = a1 - (1 - 1) * b1 + a2 - (2 - 1) * b2 + a3 - (3 - 1) * b3 + ……+ an - (n - 1) * bn,整理 阅读全文
posted @ 2018-10-24 17:50 mrclr 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 水贪心。 当经过一个加油站的时候,记下这个加油站能加的油,然后没油的时候从经过的加油站中选择加油最多的加。 1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 #include<algorithm> 5 #include<c 阅读全文
posted @ 2018-10-24 16:18 mrclr 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这道题其实挺显然的。 首先dijkstra跑出最短路图,然后在最短路图上求最小割。 正确性显然。 需要注意的是,在新图中添加最短路图的边的时候,一定是跑完dijkstra再加边,如果边跑dijkstra边加边,得到的是最短路树,而不是图。我因为这个WA了好几发。 1 #include<cst 阅读全文
posted @ 2018-10-24 10:06 mrclr 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 线段树好题。 其实挺水的,想暴力怎么做:每一次从这个点开始向两边扩,直到遇到第一个摧毁的房屋。 那么把暴力改成倍增,然后线段树查询区间和是否为0。时间复杂度O(nlog2n)。 题解好像有线段树的O(nlogn)的做法,但是特别麻烦,也没怎么看懂。 1 #include<cstdio> 2 阅读全文
posted @ 2018-10-24 08:08 mrclr 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 二分好题。 怎么二分呢?反正我是没想出来。 看了题解。 因为只有一个为奇数的点,所以对于一个位置x,求出区间[0, x]的教总和,如果为奇数,说明x取大了;否则x取小了(妙啊)。 虽然答案在int内,但是L + R可能会爆int,导致有几个点TLE了,所以还是都开long long 吧。 1 阅读全文
posted @ 2018-10-23 23:32 mrclr 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 一道不错的题,解法不少。 最易于理解的是最小生成树的做法: 首先每两个点之间都连一条长度为这两个点的距离的边,形成完全图。 然后跑最小生成树,直到剩k个联通块,这时候合并成k - 1个联通块的边的长度就是答案(注意,是连接两个联通块的边,否则就不是部落间的距离了)。 正确性很显然。因为这保证 阅读全文
posted @ 2018-10-23 22:17 mrclr 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 首先看到这种序列的问题,我就想到了逆序对,然后就想如何把这道题转化。 首先要满足这个条件:ai <bi。那么我们把所有数按第一次出现的顺序重新赋值,那么对于新的数列,一定满足了ai < bi。 因为要转换成逆序对,所以先出现的数赋成更大的值,得到了ai > bi。 接下来的操作都是在新的序列 阅读全文
posted @ 2018-10-23 21:44 mrclr 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 考虑dp。 对于ai,和他能匹配的bj只有9个,所以我们考虑从这9个状态转移。 对于ai 能匹配的一个bj,当前最大的匹配数一定是[1, j - 1]中的最大匹配数 + 1。然后用树状数组维护前缀匹配数最大值就行了。 1 #include<cstdio> 2 #include<iostrea 阅读全文
posted @ 2018-10-23 17:36 mrclr 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 题面很迷,看这个吧。 首先暴力很简单,从每一个叶子节点开始爬,直到那条特殊的边。 正解稍微想想就能搞出来:(x, y)这条特殊的边把整棵树分成了两部分,然后我们分别从x, y开始在他的那部分子树dfs,求出到达节点v时满足条件的一个区间。因为从v到u是向下取整,那么反过来合法的区间就是[k 阅读全文
posted @ 2018-10-23 16:46 mrclr 阅读(224) 评论(0) 推荐(0) 编辑
上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 83 下一页