首页 > 其他分享 >错题集

错题集

时间:2024-09-26 18:45:38浏览次数:1  
标签:测试 错误 错题 tag 401 思路 dp

主要记录模拟赛错题

要查找某一天的记录,Ctrl+F 即可。


P1722 矩阵 II #tag:8-10 下午测试 401

  • 错误思路:brute-force。

  • 正确思路:dp,令 \(dp_{i,j}\) 表示以 \(i\) 结尾放了 \(j\) 个红色算筹的方案数,初始 \(dp_{0,0}=1\),答案 \(dp_{2n,n}\)(因为最后红、黑色要一样多),转移 \(dp_{i,j}=dp_{i-1,j}+dp_{i-1,j-1}\)(\(i \in [1,2n],j \in [\lceil \frac{i}{2} \rceil,i]\)),因为红色算筹要比黑色多。

  • 错误原因:一看到题就不自觉地往爆搜、模拟这方面想,没有牢记“求方案数又不输出方案,考虑 dp”。


P6188 [NOI Online #1 入门组] 文具订购 #tag:8-10 下午测试 401

  • 错误思路:枚举 \(a,b,c\),选最优方案。由于计算 \(c\) 时会有浮点数误差,导致 WA。

  • 正确思路:从大到小枚举成套数(共 \(\frac{n}{14}\) 套)。要求物品总数尽可能大,则尽量多买笔记本。若余数为 \(0\),直接加上能买的数量即可;若余数为 \(1\),退掉一本笔记本换一支笔即可;若余数为 \(2\),退掉两本笔记本换一支圆珠笔即可。

  • 错误原因:没有考虑浮点数误差,也没有思考更简易的枚举方式。

  • 总结:

    • 尽量不要用到浮点数参与运算,能化成整数的就化成整数。

    • 要训练自己往简洁的方式想。

    • 当某题情况较少时,直接分讨。


P2678 [NOIP2015 提高组] 跳石头 #tag:8-10 下午测试 401

错误思路:二分,check 时只检查了相邻两块石头的距离是否小于 \(x\),是就移走当前石头。

正确思路:有可能移走当前石头后距离仍小于 \(x\),这时需要接着移。

错误原因:做过的题没有重复巩固。check 思路没有理清。以后记得在草稿上写好再敲代码。


P2040 打开所有的灯 #tag:8-10 下午测试 401

错误思路:dfs,没有标记。

正确思路:应当标记每个点,因为一个点只能开关至多一次,再多了就无效。

错误原因:没有想清楚所有要点就开写。


P2029 跳舞 #tag:8-10 下午测试 401

错误思路 / 原因:没写。

正确思路:dp,令 \(dp_{i,j}\) 表示以 \(i\) 结尾跳了 \(j\) 步的最大收益,初始 \(dp_{i,0}=dp_{i-1,0}-s_i\),答案 \(\max\{dp_{n,i}\}\),转移 \(dp_{i,j}=\max(dp_{i-1,j-1}+s_i,dp_{i-1,j}-s_i)\),当 \(j \bmod t=0\) 时,\(dp_{i,j}=\max(dp_{i-1,j-1}+s_i+b_i)\)。

总结:求最大收益又不输出方案,考虑 dp,要敢想、敢写 dp。


B3626 跳跃机器人 #tag:8-17 下午测试 401

错误思路:dp,但题目有后效性。

正确思路:bfs。

总结:想 dp,先要考虑先决条件:是否有后效性 / 最优子结构。


B3618 寻找团伙 #tag:8-17 下午测试 401

错误思路:dfs,但写得过于复杂导致莫名错误。

正确思路:dfs,将每个人的能力表示为二进制数,则权重之和即为所有人的异或和。

总结:

  • 看到二次幂,想到二进制表示。

  • 看到奇为 \(0\),偶为 \(1\),想到异或。

  • 还是要训练自己不断往简洁的方面想。


P3612 [USACO17JAN] Secret Cow Code S #tag:8-17 下午测试 401

错误思路:brute-force。

正确思路:因为字符串每次都是复制出来的,所以第 \(n\) 个字符一定能对应到第一个字符串的某个字符。于是递归分段处理(实现不能用真的递归,常数会很大),\(n<\frac{len}{2}\) 直接继续,\(n>\frac{n}{2}\) 则判断是否为第一个字符,若是则 \(n=\frac{len}{2}\),否则 \(n=n-\frac{len}{2}-1\)(\(n\) 表示当前下标,\(len\) 表示当前长度)。

总结:

  • 处理字符串复制的题目,考虑递归分段处理。

  • 实现时不能用递归,常数很大。


P2072 宗教问题 #tag:8-17 下午测试 401

错误思路:没写。

正确思路:dp,令 \(dp_i/f_i\) 表示以 \(i\) 结尾的最少集体数 / 最小危险值。初始 \(dp_0=f_0=0\) 其余 \(\infty\)。转移 \(dp_i=\min(dp_j+1,dp_i),f_i=\min(f_j+cnt,f_i)\)(\(cnt\) 表示当前 \(i \sim j\) 的宗教种类数,转移时顺便维护即可),注意 \(j\) 需要倒序 \(i \to 1\) 枚举,因为正序枚举可能没到 \(i\) 时 \(cnt\) 就大于 \(k\) 了,从而没有转移。答案:\(dp_n,f_n\)

总结:

  • 最值问题想 dp。

  • 注意诸如循环顺序这种细节。


P1326 足球 #tag:8-17 下午测试 401

错误思路:没写。

正确思路:结论题。要求赢的分最大,则只可能输一场或不输(不输要满足 \(s \ge t\)),输的分最大同理,也只能赢一场或不赢(不赢要满足 \(t \ge s\)),分讨即可,具体见代码。

总结:看到 \(10^9\) 数据范围,考虑是不是结论题。


P2207 Photo #tag:8-17 下午测试 401

错误思路:没写。

正确思路:我们可以把问题想像成拍了一张 \(1 \sim n\) 区间的照片,再在中间分割,求分割的最小次数,这便转化为了区间选点问题。对于每个分割点,我都想使其被更多的区间包含,这样分割点会更少。于是我们将区间按右端点从小到大排序,每次选右端点前面那个即可(不能选右端点不然分了等于没分)。

总结:学到了区间选点模型,以后看到区间问题可以尝试将其转化为此模型。


P4379 [USACO18OPEN] Lemonade Line S #tag:8-18 下午测试 401

错误思路:没写。

正确思路:贪心,将每头牛按 \(a_i\) 从大到小排序,依次放置奶牛到队列即可。从大到小排序是因为 \(a_i\) 更大的奶牛更容易进队,从而使后面 \(a_i\) 小的奶牛更不容易进队,使得队列牛数更小。

总结:

  • 求最值问题,考虑 dp 未果,或感觉比较神秘的,考虑贪心。

  • 考虑贪心,先考虑排序。


P3817 小A的糖果 #tag:8-18 下午测试 401

错误思路:对于每对 \(a_i,a_{i+1}\),若 \(a_i+a_{i+1}>x\),则对 \(a_{i+1}\) 进行操作。

错误原因:\(a_{i+1}\) 可能不够减,并且没开 long long

正确思路:\(a_{i+1}\) 不够减就减 \(a_i\)。

总结:以后要仔细考虑特殊 / 边界情况,并多用边界数据进行测试。


P2772 寻找平面上的极大点 #tag:8-18 下午测试 401

错误思路:brute-force。

正确思路:按 \(x\) 为第一关键字,\(y\) 为第二关键字排序。对于每个点,只有它前面的点才有可能支配它,而他们的 \(x\) 一定大于当前点的 \(x\)。动态维护 \(y\) 最大值并比较即可。

总结:以两维作条件的题,可以固定一维,再处理另一维。


P1394 山上的国度 #tag:8-18 下午测试 401

错误思路:没写完。

正确思路:用并查集双向合并再判断所有点是否在一个集合即可。注意合并时只有 \(u\) 与 \(v\) 的根可以流通,并不代表 \(u\) 的根与 \(v\) 的根也可以流通。

总结:并查集不能一味照板子写,要思考哪里变化了。其他算法也是。


P1395 会议 #tag:8-18 下午测试 401

错误思路:没有输出编号最小的。

正确思路:用 vector 记录重心并排序。

总结:审题很重要。


P2240 【深基12.例1】部分背包问题 #tag:8-19 下午测试 401

错误思路:贪心,但是排序时 cmp 写成了除法导致精度误差,并且没有判断最后是否满了就直接加。

正确思路:贪心,按性价比(即单位价格)排序即可。这是因为分割金币以后性价比不变,选性价比更高的一定更优。

总结:

  • 慎用除法、浮点数,避免精度误差!!!

  • 思路一定要先打好草稿!!!!!


P5650 基础字符串练习题 #tag:8-19 下午测试 401

错误思路:brute-force。

正确思路:\(1\) 转成 \(-1\),\(0\) 转成 \(1\),然后跑最大子段和。

总结:要牢记最大子段和的套路。


P6023 走路 #tag:8-19 下午测试 401

错误思路:没写。

正确思路:结论题。对于任意两天,设它们走的步数,已经获得的分数以及接下来每步可得的积分分别为 \(a_1,a_2,b_1,b_2,c_1,c_2\),不妨设 \(c_1 \ge c_2\),则显然我们有 \(b_1+a_2 \times c_1 \ge b_1+a_2 \times c_2 \ge b_1+b_2\)。(\(a_2 \times c_2 \ge b_2\) 是因为后面可能还有激励)。于是我们发现将所有步数放在一天走完即可达到最优。

总结:看到极大数据范围,考虑结论题。


P6014 [CSGRound3] 斗牛 #tag:8-19 下午测试 401

错误思路:brute-force。

正确思路:枚举两个数的余数,易得若存在 \(n-2\) 个数的和为 \(10\) 的倍数,则总点数之和一定与剩下两个数的和在模 \(k\) 意义下同余。根据这个判断即可,具体见代码。

总结:做题找数据范围小的地方入手(本题余数只有 \(1 \sim 10\))。


P2420 让我们异或吧 #tag:8-19 下午测试 401

错误思路:没写完。

正确思路:倍增维护树上前缀和即可(就是预处理 LCA 的部分顺便维护即可)。


B3828 [NICA #2] 优秀正整数 #tag:8-20 下午测试 401

错误思路:枚举 \(i\),判断 \(i \times i\) 是否为优秀正整数即可。

正确思路:同错误思路。

错误原因:取模次数太少。

总结:要取模的题,每一步都得取模


P1878 舞蹈课 #tag:8-20 下午测试 401

错误思路:没写。

正确思路:用小根堆维护每一对跳舞的人即可,具体实现细节见代码。

总结:想出 brute-force 之后,要思考哪部分可以优化,再选较容易优化的部分优化。如这题就是选绝对值最小的可以用小根堆维护。


P6092 [CEOI2012] 工作规划 #tag:8-20 下午测试 401

错误思路:没写。

正确思路:二分所需机器数,若没安排完且当前机器不会超时就安排上,否则取完成任务时间最靠前的机器做(前提是也不超时)即可,其中第二个过程可以用小根堆维护。

总结:二分 + 贪心 以及 小根堆优化 都是普及组模拟赛的参考点,必须牢记。


B3752 [信息与未来 2019] 新斐波那契数列 #tag:8-22 下午测试 401

错误思路:没写。

正确思路:发现所有新斐波那契数列里的数都可以表示为形如 \(k \times a+c\) 的表达式,然后又发现项数大约是 \(\log\) 级别的,于是枚举 \(n\),递推计算 \(k_i,c_i\),若当前 \(n\) 满足 \(k_n \times a+c_n=x\),则输出即可。

总结:\(10^9\) 数据范围,考虑数学结论!!!(找规律


P8669 [蓝桥杯 2018 省 B] 乘积最大 #tag:8-22 下午测试 401

错误思路:dp,但没有最优子结构。

正确思路:贪心,\(k\) 为偶数就两个两个选,每次看选两正数还是两负数哪个更大。为奇数时,若最大的一个是正数则直接选它,否则说明全是负数,每次选两个时要比较哪个更小(因为第一个数是负数)。

总结:

  • dp 要考虑先决条件。

  • dp 不行时就考虑贪心。


P1141 01迷宫 #tag:8-22 下午测试 401

错误思路:dfs 找联通块,但是看错题了,以为是 \(n \times m\) 的矩阵。

正确思路:同错误思路。

总结:审题!!!把题目条件列在草稿纸上。


P2700 逐个击破 #tag:8-22 下午测试 401

错误思路:对于每条连接敌对城市的边断掉。但是有可能存在比该边更小的边,断掉它以后两个敌对城市也不在一个联通块里了。这很容易 hack。

正确思路:容易发现将 \(k\) 个敌对城市不联通,需要断掉 \(k-1\) 条边。考虑将边按边权从小到大排序,依次考虑所有边并尝试断掉,同时使用并查集维护联通性。但是并查集不支持删除,于是正难则反,将边按边权从大到小排序,考虑加 \(n-k\) 条边即可。

总结:学到了正难则反思想。


B3694 数列离散化 #tag:8-23 下午测试 401

错误原因:没开 map

总结:考试一定要留出 \(15\) 分钟检查。


P2802 回家 #tag:8-23 下午测试 401

错误思路:纯 DFS。

正确思路:DFS + 剪枝,或 BFS。

总结:搜索尽量用 BFS,用 DFS 就一定得剪枝。


P2085 最小函数值 #tag:8-23 下午测试 401

错误思路:枚举 \(x\),每次取 \(F_i(x)\) 的最小值,但是这是错的,因为假设第一轮选了 \(F_3(1)\),但有可能存在 \(F_i(1)<F_3(2)\) 且 \(i \neq 3\),因此不能直接跳过。

正确思路:用优先队列维护 \(F_i(x)\) 的最小值,每次弹出队头,并插入下一个即可。

总结:当觉得问题过于简单时,想一想是不是错了。


P1661 扩散 #tag:8-23 下午测试 401

错误思路:floyd,但是抄板子。

正确思路:floyd / 二分 + dsu。

总结:不能一味抄板子,要想想哪里要改动的。


P1658 购物 #tag:8-23 下午测试 401

错误思路:dp。

正确思路:贪心。

很容易发现我们第一个一定选 \(1\),如果连 \(1\) 都不选,那么 \(1\) 一定凑不出,于是无解。

接着手玩:

1 1 -> 1 2
1 2 -> 1 2 3
1 3 -> 1 3 4

我们发现,前两组都能凑出连续的数,到第三组就凑不出了。

这是因为 \(3>2\),因此 \(2\) 无法被凑出。

更一般的,我们发现,令 \(sum\) 表示目前序列长度,则若当前要添加的数 \(> sum+1\),则一定不行,否则一定可以。

继续,对于可行的数,它们对序列长度的贡献即为他们本身。

于是我们将 \(a[]\) 排序,每次从大到小枚举直到可行,然后添加之即可。

总结:dp 不行想贪心,贪心就要玩样例。


P1165 日志分析 #tag:8-24 下午测试 401

错误思路:优先队列 + 栈,待查错。

正确思路:维护 \(dp_i\) 表示栈顶编号 \(i\) 的最大值,每次 \(dp_i=\max(dp_{i-1},x)\)(\(x\) 为插入的数)即可。

总结:对于普及组数据结构题,考虑维护前缀和 / 积 / 最值等等。


P1258 小车问题 #tag:8-24 下午测试 401

错误思路:推式子,但是推错了。

正确思路:二分第一个人坐车到的点,再计算两人分别到达目的地的时间,若第一个人时间 \(>\) 第二个人时间则它要坐少一会车,猜小,否则猜大即可。

总结:对于数学问题(特别是这种行程问题),一定要画图再推式子。如果推出来的式子太复杂,则要审视是否错了。


P2193 HXY和序列 #tag:8-24 下午测试 401

错误思路:dfs。

正确思路:dp,令 \(dp_{i,j}\) 表示以 \(i\) 结尾最后一个数选了 \(j\) 的方案数。初始:\(dp_{1,i}=1\),答案:\(dp_{n,i}\),转移:\(dp_{i,j}=dp_{i,j}+dp_{i-1,k}\)(\(k\) 为 \(j\) 的因数)。

总结:能 dfs 的,一般能 dp。求方案数,想 dp。


P3915 树的分解 #tag:8-24 下午测试 401

错误思路:没写。

正确思路:维护子树大小,等于 \(k\) 的就切掉,最后判断 \(siz_1\) 是否为 \(0\) 即可。

总结:要敢想敢写。感觉是对的就一定先写,不要犹豫。


P1589 泥泞路 #tag:8-25 下午测试 401

错误思路:模拟,若上次长度有余数则当前长度 \(-1\),若有重叠则减重叠部分。但是这一次的起点应该是上一次实际的终点(不一定是输入的,因为可能有余数),我没有记录。

正确思路:记录这个即可。

总结:这题有三种情况:全包含、有重叠、无重叠。写代码之前应当把这三种情况一一列举出来分别考虑,并且注意有余数、记录实际终点等细节。总之,要勤动笔,尤其是这种模拟题。


P3913 车的攻击 #tag:8-25 下午测试 401

错误思路:记录每行、列是否计算过,没有就加 \(n-1\),否则加 \(1\),但是有可能某个车的位置会算多次。

正确思路:整体思想,将行、列去重,得到总个数 \(x,y\),则答案即为 \((x+y) \times n-x \times y\)。

总结:单独难以处理时,考虑整体处理。


P2694 接金币 #tag:8-25 下午测试 401

错误思路:没有考虑要等金币落下的情况。

正确思路:考虑即可。

总结:打草稿!


B3874 [GESP202309 六级] 小杨的握手问题 #tag:8-25 下午测试 401

错误思路:树状数组求正序对,但是没开 ll。

正确思路:开 ll 即可。

总结:逆序对开 ll!


P3884 [JLOI2009] 二叉树问题 #tag:8-25 下午测试 401

错误思路:求 LCA 写挂了,第一次跳的时候没有让 \(x,y\) 跳到同一层(即写成了 dep[dp[x][i]]>dep[y])。

正确思路:改成 >= 即可。

总结:LCA 板子背的不熟。还得背几遍。


P2782 友好城市 #tag:8-25 下午测试 401

错误思路:没写。

正确思路:\(O(n \log n)\) 求最长上升子序列的板子。维护 \(dp_i\) 表示以 \(i\) 结尾的最长上升子序列的最小末尾值,对于每个 \(i\),二分出最小的满足 \(dp_x < y_i\) 的最小 \(x\),其中 \(y_i\) 为北岸友好城市的坐标(因为 \(dp_x\) 单调递增,因此可以二分),尝试让 \(y_i\) 接在 \(dp_l\) 后面并更新最长上升子序列的长度即可。


P1464 Function #tag:9-25 下午测试 401

错误思路:对于读入结束的条件判断错误(写成了 a!=-1&&b!=-1&&c!=-1)。

总结:审题!!!以后防范此类错误的发生。


P1095 [NOIP2007 普及组] 守望者的逃离 #tag:9-25 下午测试 401

错误思路:没写。

正确思路:对于全用闪烁魔法的情况做一遍 dp,然后看是否能增加一些跑步来使行走的路程更长。

总结:对于这种有多种情况的 dp,可以先全使用一种,再在此基础上考虑另一种。


P1334 瑞瑞的木板 #tag:9-25 下午测试 401

错误思路:直接按木板长度从大到小排序,然后依次切割。

错误原因:不一定当前的木板就是最长的,有可能其余更小的木板拼成的长木板比当前木板更长。

正确思路:将合并果子的套路反过来就成了本题。

总结:合并果子的套路十分常见,以后遇到合并 / 拆分且价值 / 体力是两个元素的和的题,考虑这种套路。


P1363 幻象迷宫 #tag:9-25 下午测试 401

错误思路:搜索,若将地图内的点全走完就判定为合法。

错误原因:显然很容易被 hack。

正确思路:因为矩阵是重复的,所以考虑多带两个参数,即当前矩阵的编号 \((xx,yy)\),若能走到了一个点,它已经被走过且与上次到达的矩阵编号不同,说明它绕了一圈回到了原点,即为合法。

总结:想出了一个思路必须尝试证明,对于这种显然错误的思路就不要再尝试写出来了。


P1348 Couple number #tag:9-26 下午测试 401

错误思路:没写。

正确思路:

\[n=x^2-y^2=(x+y)(x-y) \]

当 \(x,y\) 奇偶性不相同时,\(x+y,x-y\) 都为奇,乘起来也为奇。

否则,\(x+y,x-y\) 都为偶,乘起来为 \(4\) 的倍数。

综上,当 \(n\) 为奇数或为 \(4\) 的倍数时,它就是 Couple number。

总结:对于这种式子要更敏感一些,然后尝试从奇偶性发现规律。

标签:测试,错误,错题,tag,401,思路,dp
From: https://www.cnblogs.com/XOF-0-0/p/18363875

相关文章

  • 9.21今日错题解析(软考)
    前言这是用来记录我每天备考软考设计师的错题的,大部分错题摘自希赛中的题目,但相关解析是原创,有自己的思考,为了复习:)面向对象技术——面向对象的基本概念如下所示的UML类图中,Car和Boat类中的move()方法(B)了Transport类中的move()方法A.继承B.覆盖C.重载D.聚合相关解析继......
  • 二级C语言2023-9易错题
    1二叉树结点数计算:一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有____个结点。解:2指针:有以下程序#inctude<stdio.h>#include<stdlib.h>main(){ int*a,*b,*c; a=b=c=(int*)malloc(sizeof(int)); *a=1;*b=2,*c=3; a=b; printf("%d,%d,%d\n",*a,*b,*c);}程序......
  • CSP-S初赛错题本
    一些废话CSP-S12024即将到来临时抱佛脚整理了T1-T15这些基础题CSP-S2020T8二分图是指能将顶点划分成两个部分,每一部分内的顶点间没有边相连的简单无向图。那么,24个顶点的二分图至多有()条边。A.144B.100C.48D.122T10一个班学生分组做游戏,如果每组三人就多两人,每组五......
  • 高数易错题,不信来试试
    真的是,第一步,少了个y,结果后面就错了!错误:我以为是相等呢!法一:法二;反常积分易错点!夹逼定理or拉氏定理?一道经典的题目......
  • [开题报告]flask框架基于Web安全的大学数学错题收集系统(python+程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在高等教育体系中,数学作为一门基础且重要的学科,其学习成效直接影响学生的专业素养与后续课程的掌握程度。然而,大学生在学习数学过程中普遍......
  • PMP错题总结(四)
    本文是PMP考试第二章基于过程的项目管理方法-进度管理的错题总结,适合想增强分数的学习者参与,本篇文章是我自己的学习笔记,供大家参考进展管理:规划进度管理、定义活动、排列活动顺序、估算活动持续时间、制定进度计划、控制进度。估算计划活动持续时间的依据,来自于项目团队最......
  • 8,13号考试错题总结
    考试情况ABCDEF100030100160考题A.P1571眼红的MedusaB.P2249【深基13.例1】查找C.P1678烦恼的高考志愿D.P1918保龄球E.P1102A-B数对F.B3799[NICA#1]序列考点/易错点A.P1571眼红的Medusa:考二分模板掌握度B.P2249【深基13.例1】查找:同上......
  • 我的错题集
    目录暴力前缀和贪心思维位运算构造二分并查集双指针数论动态规划 dp图论记忆化搜索树形dp菜狗的做题心得,欢迎大家批评指正F-小苯的回文询问_牛客周赛Round38(nowcoder.com)题目解释:查询区间是否存在长度大于2的回文子序列解题思路:考察:标记根据题意,这......
  • 2024 年 8 月错题集
    CF1887CMinimumArray题目链接:https://codeforces.com/problemset/problem/1887/C题意:给定一个长度为\(n\)的整数序列,共\(q\)此操作,每次操作会将序列的一段区间同时加上某个数,求出所有操作产生的新序列中字典序最小的一个。思路:由区间加想到差分,要求序列字典序最小及要......
  • 考研数学错题整理分享
    对于考研数学来说,错题整理反思实在是太太太太太关键了,所以,即便是在往期已经提到过了很多次错题本,今天依然选择单独整理一期来与大家分享一些自己用到的、看到的亦或是别人分享的有关错题整理方法的经验。如果想要取得一个较好的成绩,那就请一定要看到最后。     考研......