摘要: 二分答案,注意l是max(a[i]+a[i+1]),r是sum_a 判断的时候用dp,设f[i]为i与1最少的相同颜色数,g[i]为i与1最多的相同颜色数,转移是f[i]=max(a[i] (w a[i 1] (a[1] g[i 1])),0),g[i]=min(a[1] f[i 1],a[i]); 阅读全文
posted @ 2018-09-18 16:45 lokiii 阅读(164) 评论(0) 推荐(0) 编辑
摘要: priority_queue实现的对顶堆,细节超级多WA了十几次……但是理论上是最简便的orz~~其实是我已经不会写平衡树了~~ 枚举左端点,显然要把这一段的高度搞成(l,l+k 1)的高度中位数,所以需要一个支持插入删除查询中位数的东西,我们使用对顶堆 然后关于删除,我们手动维护size和sum, 阅读全文
posted @ 2018-09-18 15:23 lokiii 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 来自lyd课件 发现s和last(s),next(s)成树结构,然后把式子化简成kx+b的形式,做树形dp即可 cpp include include include using namespace std; int n,t,a[105]; double p,q; struct qwe { doub 阅读全文
posted @ 2018-09-18 09:02 lokiii 阅读(220) 评论(0) 推荐(0) 编辑