方式方法和思维技巧集合
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