把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end
摘要: 大下分,没写的题目只能等到回去再写了。 A 这个东西显然是每个数的末位置和初位置的差为2的倍数。 然后对于相同的数随便搞搞即可。 code: #include<bits/stdc++.h> #define I inline #define max(a,b) ((a)>(b)?(a):(b)) #de 阅读全文
posted @ 2021-07-15 22:41 275307894a 阅读(62) 评论(0) 推荐(0)
摘要: 感觉像是一种模拟费用流。 首先这个东西费用的计算式为$P_i+(j-i)\times m$ 拆开变成$P_i-mi+mj$,这个东西对于两边独立。那么我们维护一个关于$P_i-mi$的单调上升的单调队列。 对于越往前的位置费用越小,但是流量越小。 那么挨个弹飞即可,然后对单调队列打上整体标记。 时间 阅读全文
posted @ 2021-07-15 21:30 275307894a 阅读(52) 评论(0) 推荐(0)
摘要: 你看到这种东西就想到树的直径。 然后随便口胡反证一下就可以知道就是两种情况:一种是一条是直径,另一条是除去直径后的子树的最大直径,另一种是直径扣掉一段,然后扣掉的两个端点分别向下挂两条链。 第一种情况跑出直径随便处理,第二种情况预处理前缀$max$随便搞搞。时间复杂度$O(n)$ code: #in 阅读全文
posted @ 2021-07-15 20:52 275307894a 阅读(63) 评论(0) 推荐(0)
摘要: 首先如果你做过CSP2019纪念品那道题你大概很快就会想到差分。 因为我们在第一天买进第三天卖出等同于第一天买进第二天卖出,第二天卖出第三天买进。 然后第一问就是对于所有$>0$的数加起来就好了。 第二问有一个simple的想法就是统计连续$\geq 0$的个数,但是会有单独$0$的情况。 转化一下 阅读全文
posted @ 2021-07-15 20:47 275307894a 阅读(54) 评论(0) 推荐(1)
摘要: 首先你有一个$O(n2logk)$的显然做法:枚举重复路径两个端点,计算重复路径和非重复路径的长度,然后三分最大值即可。 这个东西显然过不去,发现瓶颈在三分上,考虑优化。 发现对于一个固定的重复路径长度,非重复路径肯定越短越好。 那么不就只用三分$n$次了? 时间复杂度就变成了$O(n2)$ cod 阅读全文
posted @ 2021-07-15 06:57 275307894a 阅读(47) 评论(0) 推荐(0)
摘要: 你会发现这个东西看上去很玄学。 然后这个你会发现其实$2$和$3$是互不影响的。 所以我们对于每个数的后继都找到然后状压一下看看最大值然后最后将所有加起来即可。 注意如果一个数被算过了那么打上标记不再算。 时间复杂度$O(能过)$ code: #include<bits/stdc++.h> #def 阅读全文
posted @ 2021-07-15 06:54 275307894a 阅读(39) 评论(0) 推荐(0)
浏览器标题切换
浏览器标题切换end