ARC080E】的更多相关文章

给出一个n排列,每次可以选择相邻的两个数字放在新的排列首部,问最后形成的新的排列字典序最小是? 考虑新排列的第一个数字,则应是下标为奇数的最小数,下标不妨设为i.第二个数字应该下标大于i且为偶数的最小数,不妨设为j. 那么这样就将[1,n]新分割成了三个区间[1,i-1],[i+1,j-1],[j+1,n]. 用线段树实现查询操作.用优先队列维护区间的最优值. 时间复杂度O(nlogn). # include <cstdio> # include <cstring> # inclu…
倒着考虑 每次拿出的第一个必须是奇数位置,第二个必须是偶数位置.每次删数都不能跨过已被删去的位置. 事实上只要开个堆维护一下区间就行了.但是众所周知我zz,所以我写的线段树 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int M = 1000001; int n,m,k,a[M],d[2][M],mr[…
CF1158C CF1163E update after CF1173 很好,我!expert!掉rating了!! 成为pupil指日可待== 下次要记得合理安排时间== ps.一道题都没写的\(asuldb\)排名比窝和慎老师还高,然后还嘲讽窝掉rating?? 他合格考稳了 CF1179D CF280C 期望 CF914D CF1041C CF1197E 码力约等于-inf CF1217D 如果\(x>y\)则标红否则标蓝毕竟一个环不可能单调不降 CF322F 拉格朗日插值 CF1215D…