随笔分类 -  线段树

摘要:分析:看起来有点像最大权闭合图,然而复杂度太高。。。 正解是dp,设dp[i]为考虑前i条路的最大收益,则dp[i]=max{dp[j] - cost[j+1][i] + earn[j+1][i]},0<=j<=i-1,earn[j+1][i]表示在[j+1,i]之间的比赛,是个O(n^2)的dp. 阅读全文
posted @ 2017-11-24 18:48 7391_KID 阅读(432) 评论(0) 推荐(0)
摘要:链接:https://nanti.jisuanke.com/t/16878 分析:先挖个坑。。这题貌似有问题,按题意应该是能砍则砍,但是样例是按能得到的最大数来算的。。下面先按能砍则砍来分析。。 首先预处理一下,f[i]表示从1砍到i,能砍的最大数,b[i]表示如果把i砍了,从i往后一共能砍多少棵, 阅读全文
posted @ 2017-09-05 15:34 7391_KID 阅读(242) 评论(0) 推荐(0)
摘要:题目链接:http://arc068.contest.atcoder.jp/tasks/arc068_c 题目大意:有m个车站排成一列,有n种纪念品,第i种只能在l[i]和r[i]之间的车站买到,列车从0出发,每d站停一次,求对于1<=d<=m,分别最多能买到多少种纪念品? 分析:对于长度大于等于d 阅读全文
posted @ 2017-07-21 18:34 7391_KID 阅读(375) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/831/problem/E 分析:题意很简单,一开始想写个树状数组然后找逆序数,发现找下一个并不好处理。。还是用线段树,直接找最小值为下一个,然后再把这个最小值改成无穷大,直接往下推就可以了。 阅读全文
posted @ 2017-07-19 00:08 7391_KID 阅读(162) 评论(0) 推荐(0)
摘要:题目链接:http://arc077.contest.atcoder.jp/tasks/arc077_c 分析:如果某条线段包含x,显然应该先按一下到x,再从x走,反之必然是直接走过去,很容易想到用dp做,记len[i]为包含i点的线段长度之和,s[i]为以i为起点的线段数目,con[i]为包含i的 阅读全文
posted @ 2017-07-18 15:03 7391_KID 阅读(264) 评论(0) 推荐(0)