摘要:
二分答案,注意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]); 阅读全文
摘要:
priority_queue实现的对顶堆,细节超级多WA了十几次……但是理论上是最简便的orz~~其实是我已经不会写平衡树了~~ 枚举左端点,显然要把这一段的高度搞成(l,l+k 1)的高度中位数,所以需要一个支持插入删除查询中位数的东西,我们使用对顶堆 然后关于删除,我们手动维护size和sum, 阅读全文
摘要:
来自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 阅读全文