ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【基础】易错点总结

2021-11-08 19:30:00  阅读:122  来源: 互联网

标签:总结 易错 基础 long 欧拉 集合 时候 dp mod



问题:
1:开数组的时候看好数据范围,尤其是建边的时候,有的时候双向建边就会炸数组

2:数组开的时候和数组赋初值注意n,m的意义,和0x3f的大小,会不会炸

3:必须看清题目中的边的数目,可能有重边,不能根据点的开,最多开到n*(n+1)//2,还有mle的问题,同时也要考虑

4.priority_queue是大跟堆,重载运算符的时候注意符号方向问题

5.正常情况下,迭代加深搜索比一般的搜索剪枝慢很多,迭代加深无法最优化剪枝,快300ms

6.kmp计算的时候,是用i和j+1比较。j要从0开始,因为j+1是从第1位开始匹配

7.欧拉图遍历的时候,反向加边,要注意题上字典序的问题。判断有没有欧拉路径或欧拉回路也可以根据结果来反推输出前判断是否把所有的边用上,(或者点)

8.有向图判断欧拉路径还要看图是否联通,可以根据结果,也可以根据并查集来写

9.并查集集合大小相加的时候只能加一遍,好理解一些,如果要查询一个数字所属于的集合里面元素的个数们可以直接使用实现

10.并查集的本质是把一堆分开的数,合并成一个树形结构,且集合内元素不同,可以理解成几个集合,集合里面元素的查询,和集合之间有无矛盾条件的存在是非常有用的

11.并查集判环(并查集求最小环),最重要的是更新每一个节点到父节点距离的操作

12.并查集对于无向图和有向图都可以使用,在判断有没有欧拉路径的时候,可以帮助高效判断一个图是否联通,不连通的话当然没有欧拉回路

13.如果需要没有push_back的时候就访问下标进行操作,需要v.resize(const int )大小

14.dp有的时候要用容斥原理进行去重

15.取mod操作不能多也不能少,多了一减就会有负数出现,必须要+mod)%mod。取少了就会炸logn long所以,要取mod的题最好开long long,指的是被mod的数字,就可以避免上面的问题

16.个人理解dp的无后效性就是指,题目中给的有限定条件,当for循环枚举到当前情况的时候,无法知道后面的约束条件是否成立,导致没有符合要求。再简单一些就是,你会从一个未知是否合法的状态更新当前状态,而且,后面也难以更改。这也就是为什么要注意for变量枚举顺序的原因

17.dp和递推不同的一点就是,递推在向后枚举的时候,不会管当前状态是否最优,只是单纯的转移子结构,而dp是为了尽可能的更改当前情况到最大值,找到合法状态下的最优子结构。(不敢苟同有dp和递推混为一谈的说法)

18.尤其注意dp内部取mod问题和数组MLE的问题,一般都是把ans改成long long

19.树形dp一般就是推出来状态转移方程就好写了,还有,状态的定义和树上结点彼此之间的关系可以自己设定

20.有返回值得函数,如果不return会一直RE,因为程序不知道输出什么,所以必须返回,小心
21.能写for循环,不要写while循环
22.

标签:总结,易错,基础,long,欧拉,集合,时候,dp,mod
来源: https://blog.csdn.net/qq_55284358/article/details/121200768

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有