摘要: ~~没有复杂结构甚至不长但是写起来就很想死的代码类型~~ 原理非常简单,就是用先用单调队列处理出mn1[i][j]表示i行的j到j+k 1列的最小值,mx1[i][j]表示i行的j到j+k 1列的最大值 然后就变成求单列最大最小值,用上面同样的方法处理出对于列的mn2mx2即可 cpp includ 阅读全文
posted @ 2018-08-02 23:29 lokiii 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 设f[i][j]表示数列到i为止最后一项第j位为1的最大子序列长度,每次从i 1中1 include using namespace std; int n,f[35],ans; int read() { int r=0,f=1; char p=getchar(); while(p '9'||p='0 阅读全文
posted @ 2018-08-02 22:10 lokiii 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 第一想法是按照结束时间贪心,但是这样有反例 所以先按照t贪心,能选则选,把选的楼的持续时间放进大根堆里,当当前的楼不能选的时候如果当前的持续时间比大根堆里最大的要小,就用这个替换最大,这样总数不变但是时间缩短了 cpp include include include include using na 阅读全文
posted @ 2018-08-02 18:38 lokiii 阅读(102) 评论(0) 推荐(0) 编辑