方式方法和思维技巧集合

O 如果题目中出现了将等差数列加在一个区间的操作

而且可以枚举等差数列在数组中的位置的话,就可以先让这个数列加到第一个位置,然后从左到右“蠕动”到最右边,每次只需要修改第一个和最后一个数,然后区间修改中间的数

O 当出现第 K 大时,考虑二分答案是一个很好的方向

ICPC2022南京D

O 计算期望的技巧:考虑贡献

O 期望的重要性质:独立性

例如n个人和n个人随机匹配,每一对人又固定权值,问你总权值的期望

那么E(A+B)=E(A)+E(B),可以左边每个人单独计算和右边n个人的期望,然后再加起来算期望

ICPC2019南京J

O 一个序列中若干个区间嵌套成树的关系(即有包含但没有交叉),让你把树建出来,可以用括号匹配

O 如果快速幂的log被卡的话,可以试试把指数加起来,最后再求幂

2020牛客多校第九场E

O 涉及到弹性碰撞或者光线反射,则解法很可能跟镜像复制平面,转化成虚像直线传播

2020杭电多校第三场08

O 数据规模非常小的时候会有意想不到的暴力方式简化问题,比如每加一条边就进行一次拓扑排序来判环

洛谷1347 排序

O 当出现了一道全世界都会,但是只有你不会的签到题的时候,不妨假设某个难想的hack出题人也没有想到!!!

2020杭电多校第二场A

O 正难则反,不仅仅局限于容斥的思路,还可以建反向边,把可到达转化成可覆盖等

洛谷3916 图的遍历

O 若有f(x,y)<=min{a[x],a[y]}形式的要求,可以尝试对a排序,就可以只考虑f(x,y)<=a[y]

CCPC2017哈尔滨A

O 若不宜求f(x)可以求f(x>=m)

CCPC2017哈尔滨B

O 要求答案膜一个合数,却又碰到除法时,可以尝试消元

洛谷5520 清原樱

O 多组数据求组合数时,可以预处理阶乘的值,然后直接公式法快速求

SDOI2016 排列计数

O 交换dp顺序以使用滚动数组,当dp两个维度独立,且某一层的转移只依赖上一层是可以交换dp顺序

HAOI2008 木棍分割

O 调和级数求和,当n=1e5时n/1+n/2+…+n/i约等于1e7,可以保证枚举的效率

西北大学2019新生赛 序列排序II

O 枚举gcd

西北大学2019新生赛 序列排序II

O 使用离线排序获得性质,例如如果区间左端点递增则能得到美好的性质

SDOI2009 HH的项链

O 递推或DP时f初值设成-INF可能能防止非法状态乱入

XDOJ 小W的塔防

O 很多构造题不能凭空猜测,而必须依据某种性质满足合法或最优

墨西哥区域赛 CARPET

O 思考涉及到子区间的问题时,一个常见的思路是确定一个端点,考虑另一个

CSP2019D1T2

ecfinal2019热身赛B题

CCPC2017哈尔滨B

O 一堆颜色的球中颜色数量超过总数的一半的颜色最多只能有1个,看到超过或不超过n/2要敏感

CSP2019D2T1

O 当所有球颜色数不能超过总数的一半时,只要差值相同,不同的数量对于合法性的判断都是等价的

CSP2019D2T1