![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
zzk_233
这个作者很懒,什么都没留下…
展开
-
codeforces 508E Arthur and Brackets(贪心)
这道题看懂题用了一会,要求的就是对于每一个左括号,都要有一个右括号在他给的l,r区间内才合法,这个区间的定义就是 左括号位置+l≤右括号的位置≤左括号位置+r。 那么其实利用栈,如果目前处理出来的数量已经覆盖到他的l,r区间内,就处理,如果超过了就不合法。 pos[i]表示这个点左括号的位置,ans是答案序列。(我是从0开始,所以关于cnt的判定是不加等的)。 最后不要忘记清空栈。 #...原创 2018-10-22 08:00:54 · 186 阅读 · 0 评论 -
雅礼集训 Day2 T1 施工
首先有一个比较好想的结论(谁说的。。。一点都不好想!)就是最优的情况一定是有两端高于中间的一段平地。 因为一段本来有高度差的一起增高等于没用,所以我们可以把最终高度相等的作为一段,无论这段有多少个。 而这样做的条件是两边比中间高。 这样我们得到一个dp式子,这个是个二次函数,可以直接求出t的最小值 就是理想高度,这样就求出了最小的来更新,而对于j的选取,就是在i前面第一个比它高的为...原创 2018-10-23 18:58:52 · 365 阅读 · 0 评论 -
codeforces 1029E Tree with Small Distances
这道贪心感觉比较好想吧。。但是有坑点。。 我们发现一个点如果不合法,把他的父节点连到跟比把他自己连到跟要合适一些,所以为了不少不漏情况, 直接dfs遍历整棵树,遇到一个树的子节点不合法就把这个点连到跟,这个时候坑点出现了,因为它是个树, 所以它的子节点的dis值更不更新都没事,反正不会被二次搜到,但是它的父节点一定要更新成2(就是合法), 不然会多出一些情况的,最后统计答案就行了。 #...原创 2018-10-21 23:24:11 · 135 阅读 · 0 评论 -
codeforces 1005F Berland and the Shortest Paths
题目大意:给出n个点,m条边,和一个k,要求构成一棵树,每个点到1的距离都是原图中的最短路,输出有多少种。边权为1 如果小于等于k种,就输出所有情况,以字符串的形式表示每条边是否选择,边的编号按照读入顺序。大于k种就随便输出k种。 据说这叫最短路树。。。 因为边权为1,所以考虑每个点最短的情况一定是从一个连向他的最短的点+1得到的。所以从1开始bfs,找到每个点的最短距离。 然后枚举每条边...原创 2018-10-29 23:39:57 · 136 阅读 · 0 评论 -
codeforces 1042F Leaf Sets
题目大意:给定一棵n个点的树,将叶子节点分为数个集合,使集合里点对最长距离不超过k,求最少集合数。 贪心,考虑一个非叶节点,它的下面的叶子结点对当前点之间的距离排序之后,当这个叶子结点和比它小的一个的和大于k的 时候,代表后面的每一个叶子结点都要新开一个集合,而之前的可以继续作为一个集合向上更新。最终会剩下一个集合,所以 答案要+1。注意要选择一个度数不为1的点作为开始点(就是非叶节点)。 ...转载 2018-11-01 21:08:02 · 164 阅读 · 0 评论