上一页 1 2 3 4 5 6 ··· 22 下一页
摘要:块套树为什么会这么快。。 先跑出原序列逆序对。 显然交换两个位置$l,r$,对$[1,l),(r,n]$里的数没有影响,所以只需要考虑$[l,r]$内的数。 设$(l,r)$内的数$a_i$,则按以下规则更新答案: 若$a_i<a_l$,则$ans--$ 若$a_i>a_l$,则$ans++$ 若$ 阅读全文
posted @ 2018-01-16 07:37 Sakits 阅读(178) 评论(0) 推荐(0) 编辑
摘要:这题的加强版,多了一个$l_i$的限制,少了一个$p_i$的单调性,难了好多... 首先有方程$f(i)=min\{f(j)+(dep_i-dep_j)*p_i+q_i\}$ $\frac {f(j)-f(k)}{dep_j-dep_k}<p_i$ 假如没有$l_i$的限制,实际上就是上面那题... 阅读全文
posted @ 2018-01-06 20:58 Sakits 阅读(527) 评论(0) 推荐(2) 编辑
摘要:有点类似NOI2014购票 首先有方程$f(i)=min\{f(j)+(dep_i-dep_j)*p_i+q_i\}$ 这个显然是可以斜率优化的... $\frac {f(j)-f(k)}{dep_j-dep_k}<p_i$ $p_i$是单调的,于是可以单调队列,当遍历完一个子树的时候,必须复原单调 阅读全文
posted @ 2018-01-04 21:57 Sakits 阅读(424) 评论(0) 推荐(0) 编辑
摘要:标程的写法稍微有点麻烦,其实不需要平衡树也是可以做的。 线段树上维护从左端点开始最远的有拍照的长度,以及区间的最大值。 考虑两段区间合并的时候,显然左区间必须取,右区间的第一个比左区间最大值大的数开始就可以取了,这个可以从右区间往下递归找,然后就没了,查询的时候同理,复杂度$O(nlog^2n)$。 阅读全文
posted @ 2018-01-04 14:04 Sakits 阅读(137) 评论(0) 推荐(0) 编辑
摘要:学习了新姿势。。(一直看不懂大爷的代码卡了好久T T 首先数字范围那么小可以考虑枚举众数来计算答案,设当前枚举到$x$,$s_i$为前$i$个数中$x$的出现次数,则满足$2*s_r-r > 2*s_l-l$的区间$[l+1,r]$其众数为$x$,这个显然可以用一个数据结构来维护。 直接扫一遍效率是 阅读全文
posted @ 2017-12-28 21:32 Sakits 阅读(305) 评论(0) 推荐(1) 编辑
摘要:擦。。没看见简单环。。已经想的七七八八了,就差一步 显然我们只要知道一个点最远可以向后扩展到第几个点是二分图,我们就可以很容易地回答每一个询问了,但是怎么求出这个呢。 没有偶数简单环,相当于只有奇数简单环,没有环套环。因为如果有环套环,必定是两个奇数环合并1个或几个点,也就是同时保持奇数或者同时变为 阅读全文
posted @ 2017-12-27 10:32 Sakits 阅读(295) 评论(0) 推荐(0) 编辑
摘要:从S出发跑dij,从T出发跑dij,顺便最短路计数。 令$F(x)$为$S$到$T$最短路经过$x$的方案数,显然这个是可以用$S$到$x$的方案数乘$T$到$x$的方案数来得到。 然后第一个条件就变成了满足$F(A)+F(B)=F(T)$,这个只要用map存一下点的状态,每次查$F(T)-F(A) 阅读全文
posted @ 2017-12-26 13:35 Sakits 阅读(379) 评论(0) 推荐(0) 编辑
摘要:首先LIS有个$O(n^2)$的DP方法 $f(i,j)$表示前i个数,最后一个数<=j的LIS 如果$a_i!=0$则有 如果$a_i=0$则有 注意因为$f(i-1,j)\leq f(i-1,j-1)+1$,所以上面第二个转移是成立的。 用treap维护这个有两种写法。 ①支持区间max=,区间 阅读全文
posted @ 2017-12-25 18:55 Sakits 阅读(158) 评论(0) 推荐(0) 编辑
摘要:1A,拿来练手的好题 用一个优先队列按煮熟时间从小到大排序,被煮熟了就弹出来。 用n个vector维护每种食物的煮熟时间,显然是有序的。 用树状数组维护每种煮熟食物的数量。 每次操作前把优先队列里煮熟时间<=当前时间的弹出,BIT上+1。 每次0操作把食物塞进优先队列和vector 每次1操作先看看 阅读全文
posted @ 2017-12-24 22:00 Sakits 阅读(357) 评论(4) 推荐(0) 编辑
摘要:行和列>4的可以直接构造,只要交叉着放就好了,比如1 3 5 2 4和2 4 1 3 5,每一行和下一行用不同的方法就能保证没有邻居。 其他的可以用爆搜,每次暴力和后面的一个编号交换并判断可行性。 写dfs的话其实行和列>4的就不用刻意构造了,这个dfs方法可以$O(n*m)$跑出一个构造方案。 # 阅读全文
posted @ 2017-12-24 21:11 Sakits 阅读(264) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 22 下一页