需要补代码的口胡题目

挖坑场,都是代码有空补系列胡题。

现在已经变成半个to do list了

http://codeforces.com/problemset/problem/601/B

L 的取值一定是相邻的两个,差分一下,变成多次询问区间内所有子区间max的和。

算法一:维护一个单调栈,每次询问 (mathcal{O}(n)) 一遍区间,每扫到一个数用单调栈的信息更新答案。时间复杂度 (mathcal{O}(qn))

算法二:考虑列出 (L) 的矩阵,每个数的贡献是一个矩形,查询是也是一个矩形,二维树状数组维护矩形加,矩形求和即可。(mathcal{O}(qlog ^2 n))

补题状态:未补

https://codeforces.com/problemset/problem/1450/C2

abcabcabc...

bcabcabca...

cabcabcab...

这样给各自编号后,有三种修改方案可以选择:

  • a->O,b->X

  • a->X,c->O

  • b->O,C->X

不难发现三种方案修改的次数总和为 (k),根据抽屉原理必有一种合法方案。

补题状态:未补

https://codeforces.com/gym/102900/problem/B

数字总和为(空地,雷)的相邻个数,那么可以把 (B) 改成都和 (A) 一样或者都和 (A) 相反,这样数字总和都能成为 (A) 的数字总和。由于两种方案总和为 (nm),所以必存在一种合法方案。

此题和上题的总结是,遇到构造题并且分母有个常数时,考虑抽屉原理。

补题状态:未补

https://zhuanlan.zhihu.com/p/266356742

原文地址:https://www.cnblogs.com/do-while-true/p/14934370.html