把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end
摘要: 我真是tcl居然没有调出来。 首先套路地拆成上行和下行两端。 先考虑上行,对于一个点$u$如果满足条件那么它一定满足$d_l-d_=u$ 移项得到$d_l=d_u+u$ 这不是链上数一个数的个数吗,dfs的时候差分询问开桶记录即可。 然后下行也是一样的。 总的时间复杂度$O(mlogn+n)$时间复 阅读全文
posted @ 2021-07-09 22:15 275307894a 阅读(64) 评论(1) 推荐(1) 编辑
摘要: 这个显然是最长上升子序列长度。 考虑怎么求这个东西。 我们设$dp_{i,j}$表示在$A$中到了$i$,已经使用了$j$次的在$B$中最大能到达的位置。 然后考虑两种转移,一种是$A$后移,一种是$B$跳到最近的位置。 时间复杂度$O(nk)$,然而第二个包最后一个点过不去,特判了qwq code 阅读全文
posted @ 2021-07-09 21:55 275307894a 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 首先根据四色定理这个颜色肯定不超过$4$ 然后题目中给了$7$的样例是4,然后手推一下$1$到$6$即可。 然后考虑$4$怎么构造。 容易发现除了$2$其它都是奇数。 然后我们对这个东西奇偶染色容易发现上下只要颜色不同即可。 所以上面$12$下面$34$就好了。 code: #include<bit 阅读全文
posted @ 2021-07-09 21:46 275307894a 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 其实这道题是一眼秒了的。 因为$A$有正负所以显然按$A$正负开两颗平衡树维护即可。 但是并没有这么简单。 首先$A=0$,这个要特判。 然后它还会重复撤销一个不等式多次所以也要特判。 大概没了。时间复杂度$O(nlogn)$ code: #include<bits/stdc++.h> 阅读全文
posted @ 2021-07-09 06:45 275307894a 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 很妙的题目,考试的时候没做出来我果然是菜。 考虑对这个东西分治。 对于两边的分治下去即可。 然后对于跨越区间中点的特别处理。 对于左边处理出$Sum_i$表示$[i,m]$内的最大前缀长度,$Maxn_i$表示$[i,m]$内的最大子段和。 右边同理,那么对于一对$(i,j)\(答案就是\)\max 阅读全文
posted @ 2021-07-09 06:34 275307894a 阅读(52) 评论(1) 推荐(1) 编辑
摘要: 为什么我的$O(n)$做法比$O(nloglogn)$做法跑得还慢啊! 首先S1的长度为$i$的子串有$n-i+1$个。 然后全部长度为$i$的子串有$2i$个。 $i$成为答案长度的一个充分条件为$2i>n-i+1$ 带个$i=log(n+1)$进去发现成立。这启发我们将长度小于$i$的全部打出来 阅读全文
posted @ 2021-07-09 06:27 275307894a 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 我们发现每个值的贡献其实是独立的。 所以这启发我们对于每个值单独计算。 题目中真正有意义的合并只有$O(n)$次,每次暴力归并所以是$O(n2+m)$的。 但是这个显然不够优。 我们考虑启发式合并。 这样再用个set维护就可以了。时间复杂度$O(nlog2n)$ 用线段树合并可以一只log code 阅读全文
posted @ 2021-07-09 06:21 275307894a 阅读(79) 评论(0) 推荐(0) 编辑
浏览器标题切换
浏览器标题切换end