作者:x将臣x | 来源:互联网 | 2023-10-14 11:22
一个笨脑瓜仰慕并很努力地追上平常人的能力
目录 如何做思维题? 思维过程 以CF1151B Dima and a Bad XOR 为例 1. 自顶向下 2. 自底向上 3. 总结结论,解决问题 |x1-x2|+|y1-y2| 贪心 双指针 二分答案 博弈
如何做思维题? 思维过程 以CF1151B Dima and a Bad XOR 为例 1. 自顶向下 1.分析问题的元素:最突出的元素为异或,其次为结果大于零,其次为每行取一个,其次为一个二维数组
2.分析每个元素的特点:
异或:相同取0,不同取1
结果大于零:为什么是零,不是某个数字,如果是零会是什么情况
每行取一个:每行的数字在求解问题中是独立的,在列中是存在关系的(异或关系)
等等……
2. 自底向上 1.分析元素的结论:
异或: 相同的数字异或为零,反之大于零(对应大于零这个元素) 多个数字异或为零不代表所有数字一定相同,但根据上面的结论将一个数字换成一个不同的数,异或结果必大于零
每行取一个: 作用就是换数字,但是有可能所有的数字都是相同的 等等……
3. 总结结论,解决问题 随便找一个选数方案如果结果大于零就可以直接解决问题。但找到了一个为零的选数方案,尝试用其中一个数字同一行的不同的数替换该数字,如果所有数字都找不到对应不同数字(同一行全相同),就解决了问题。
|x1-x2|+|y1-y2| 二维问题的其中一种思维是x,y相互独立,想到就好做(CF1499C Minimum Grid Path、B Eastern Exhibition) 贪心 选择i和j且i!=j,a[i]–,b[j]–,求最多操作数 使a[i]尽可能不为0以便配对有多种选择,每次选择最大和次大(维护优先队列,2e5) 双指针 1.勿默认左指针为主指针,请考虑题意确定主指针。主指针的特点:
维护较复杂的问题 变化幅度较小 次指针维护最值 2.处理答案贡献连续的问题,通常要确定连续边界,第一次满足条件和不满足条件的情况(Unstable String)
二分答案 最大的最小 最小的最大
博弈 玄学奇思妙想就行了 1.递推性:总结出递推过程的特点。
Vasya and Chess 我找到了间隔1列的时候可以“逼”对方过不来,什么特点? 对方所在地棋子无时,对方输了。
2.对称性:图形问题,特别是题目给定开始移动位置对称时。(包括对角对称)
只要和先手对称,就能将当前状态递推到最终状态。