Mistakes(Updating)
1.当调试时发现无法正常调用函数时,检查是否发生爆栈
对于每个栈仅有4MB的空间,开int只能开大约5*10^5。
大数组一定要开全局变量
2.当long long=int*int时会爆int,一定要注意
在进行long long计算时,最好全部开成long long ,或加上1LL
3.vector.size()的类型为unsigned int
当用其做减法时一定要注意边界条件,防止差小于0溢出
4.在求特殊最值时,一定要特殊定制初始化值,不能套用平常初始值,防止初始值不够。
Ex:1<<30 > 1e9
5、由于返回类型为int和bool的默认返回值是1,因此有些时候要注意在函数结束前return false.
6、注意计算几何的精度问题,要比答案多算2到3位,否则可能WA
(Codeforces 8D)
7、注意模数不能为零
当p mod q时要对q=0时特殊处理
(Codeforces #480 A)
8、注意答案的大小写
(BZOJ 2964)
9、scanf("%c)和getchar()有相同的问题:会读入\n等缓冲区的遗留字符
尽可能的用char数组和scanf("%s")的组合
(BZOJ 2819)
10、在写Trie树时,CNT的初始化要根据根节点数目而定
如果有n棵树,则CNT要初始化为n+1
11、在线性基求XOR最大值时
如果res初始值不为0,不能对线性基中的1直接添加,而要使用MAX逐个判断
12、如果在读入long long 时使用IO优化
read()中的INT要改为LONG LONG!!!
13、注意x组成y至少要多少个这类问题的书写:
y=y/x+(y%x>0) || y=(y+x-1)/x (不要漏>0)
14、有多个括号要留心每个括号的位置啊,多看几遍
while((f=dfs(S,T,INF))>0)
这里的>0一开始放到第2个括号里了,结果f每次就都是0或1了……囧,调了1h
15、像网络流这样执行过一边就会对原数组产生影响的模块,
执行过一次后想调试/再次调用时,不能再执行一遍
16、由于模板中大部分数据都是int,如果有long long时要特别注意修改原模板中的int
惨案:
void add_edge(int from,int to,ll cap)
17、如果题目中涉及连续相乘且不取模,注意是否需要高精度
18、Big Integer模板类中牢记存储顺序是从低位到高位的
重载>时要从后往前判断
19、能用int计算不用long long,在32位机下,int比long long 快几倍
20、求SG函数时,初始值最好都设为0,防止异或-1这种情况
如果使用$vis$数组也一定要第一时间更新,防止陷入死循环
21、对变量初始化的先后顺序要注意
EX:cur=0要在st[cur][1]之前初始化
22、哈希表最好用链式前向星实现
$vector.clear()$太慢了!
23、左移、右移比==优先级高,但位与、位或比==优先级低
24、树状数组$Query$中的$ret$记得初始化!!!
25、如果$dp$时一开始状态无法填满,选择 一开始特殊处理 或 从0开始循环 !
26、如果数组下标中有运算,查看是否可能溢出,要开大数组!
27、链式前向星实现的网络流算法的要点!
(1)$edge$数组的下标一定要从0开始,这样才能使得$edge[i]$与$edge[i^1]$互为反边
(2)由于上一条原则,$head$数组一定要初始化为-1,而不是-1与0皆可
28、突然发现自己以前点分治找重心都是假的……
然而复杂度被证明是正确的:传送门
不过最好在递归时$vsum=vsum-sz[x](e[i].to=f[x])$
29、$map,set$存结构体时要重载小于号
注意重载要写全(特判前面关键字相等的情况),否则前面相等时会有意外情况(不再插入)
30、OJ上交题前一定要检查是否删掉freopen!!!
31、哈希的值域一定要从1开始!!!有0明显会出错
(特别是字符串哈希)
32、注意三元运算符的优先级!!最好都加上括号!
33、不能只考虑是否爆$int$,对$1e18$的$longlong$运算时也要注意是否爆$longlong$!
34、注意多测且一边读入一边处理时要把数据读完,不能break!!!
35、线段树注意最后一层的更新,不能先$return$!
36、线段树询问时要保证询问区间和$[1,n]$有交!否则陷入死循环
Mistakes(Updating)的更多相关文章
- [转]50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs
http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/ 50 Shades of Go: Traps, Gotc ...
- Yet Another 10 Common Mistakes Java Developers Make When Writing SQL (You Won’t BELIEVE the Last One)--reference
(Sorry for that click-bait heading. Couldn’t resist ;-) ) We’re on a mission. To teach you SQL. But ...
- [Forward]Ten Caching Mistakes that Break your App
Caching large objects, duplicate objects, caching collections, live objects, thread unsafe caching a ...
- CocoaPods被卡住:Updating local specs repositories
使用CocoaPods被卡住:Updating local specs repositories 使用 pod install --verbose --no-repo-update
- 使用CocoaPods被卡住:Updating local specs repositories
使用cocoapods 更新第三库,一直停留在.Updating local specs repositories 后来查发现pod install 被墙了,请大家换成pod install --v ...
- 【转载学习前辈的经验】-- Mistakes I made (as a developer) 我(作为一名开发者)所犯过的错误
我 2006 年开始工作,至今已经 10 年.10 年是个里程碑,我开始回顾自己曾经犯过的错误,以及我希望从同行那里得到什么类型的忠告.一切都在快速改变,10 年了,我不能确定这些秘诀是否还有用. 不 ...
- 10 Biggest Business Mistakes That Every Entrepreneur Should Avoid
原文链接:http://www.huffingtonpost.com/syed-balkhi/10-biggest-business-mista_b_7626978.html When I start ...
- MySQL提示:The server quit without updating PID file问题的解决办法(转载)
MySQL提示:The server quit without updating PID file问题的解决办法 今天网站web页面提交内容到数据库,发现出错了,一直提交不了,数找了下原因,发现数据写 ...
- Mysql 启动错误:the server quit without updating pid
接到任务看看mysql为啥起不来,就上服务器上看了看,确实起不来,至于之前发生了啥也不知道. 服务器Ubuntu,mysql-5.6 1.先试下mysql登陆 mysql -uroot -p 发现报错 ...
随机推荐
- Java并发编程(4)--生产者与消费者模式介绍
一.前言 这种模式在生活是最常见的,那么它的场景是什么样的呢? 下面是我假象的,假设有一个仓库,仓库有一个生产者和一个消费者,消费者过来消费的时候会检测仓库中是否有库存,如果没有了则等待生产,如果有就 ...
- oracle主键约束、唯一键约束和唯一索引的区别
(1)主键约束和唯一键约束均会隐式创建同名的唯一索引,当主键约束或者唯一键约束失效时,隐式创建的唯一索引会被删除: (2)主键约束要求列值非空,而唯一键约束和唯一索引不要求列值非空: (3)相同字段序 ...
- 利用rundll32执行程序的函数执行程序
1.前言 无意间发现hexacorn这个国外大佬,给出了很多通过rundll32执行DLL中的函数执行程序的方法,思路很灵巧. 2.原理 rundll32加载dll 用法: rundll32 < ...
- python进阶之类常用魔法方法和魔法属性
前言 前面我们总结过了python的关键字.运算符.内置函数.语法糖等与python魔法方法之间的关系,现在我们更细一点,看看python的面向对象编程有哪些常用的魔法属性和魔法方法. 魔法属性 对于 ...
- 【hihocoder1251】Today is a rainy day
#include<bits/stdc++.h> ; ; const int inf=0x3f3f3f3f; using namespace std; char s1[N],s2[N]; ] ...
- 六、springboot集成Swagger2
1.Swagger简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法 ...
- jQuery之字体大小的设置
先获取字体大小,进行处理. 再将修改的值保存. slice() 方法可从已有的数组中返回选定的元素.arrayObject.slice(start,end).start 必需.规定从何处开始选 ...
- linux tomcat 突然验证码出不来
情况描述 虚拟机上用tomcat部署的web应用,本来都还可以的.后来打了一个快照进行过压缩后,重新起虚拟机发现应用登录界面的验证码出不来了,具体报的是500错误. 参见http://www.blog ...
- git —— 标签
标签:为分支添加一个可读标识. 1.创建标签 操作步骤: 切换到需要打标签的分支上 $ git branch $ git checkout master 为当前分支新增一个标签 $ git tag v ...
- Codeforces 332B Maximum Absurdity(DP+前缀和处理)
题目链接:http://codeforces.com/problemset/problem/332/B 题目大意:给你n个数和一个整数k,要求找到不相交的两个长度为k的区间,使得区间和最大,输出这两个 ...