【自用】Notice
读题
- 不要把 \(\sum a \oplus b\) 看成异或和。
- 注意读完整,有可能对原有符号有新的约定,不要想当然。
- 注意模数的
0数清楚。
卡常&时间
- 打题之前一般先搞个自己的缺省源。快读
x=0,w=1的初始化不要漏掉。 survive - 取模多的注意常数。 Holy Sequence
初始化
- 初始化如果放到init里面,main要记得调用
- 初始化不要乱移动位子,人家n还没读进来你循环个毛线 UVA11019 Matrix Matcher
- 清空的时候想清楚要清空什么,哪些要清。如果对复杂度有影响记得记录改变过的位置。
- 离散化的时候是
m=unique( tmp+1,tmp+1+2*n )-tmp-1; l[i]=lower_bound( tmp+1,tmp+1+m,l[i] )-tmp;,不要在前面不-tmp-1或者在后面多减一。
Input&Output
- 用了
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);之后就和scanf printf无缘了……切记 while ( scanf( "%d",&n)==1 && n )中==1不要删掉。uva1519- 死循环之前的输出,如果不加换行是没有输出的;别问为啥,问就是缓存。(换行作用相当于清缓存,如果你一直存着后面又恰好死循环当然会积压着没有输出)
add(read(),read(),read())这个 xyx 说是 UB,先后顺序有问题 ARC108 C
优先级
- 如果是
define的话最好加括号(因为优先级)。比如#define lowbit(x) (x)&(-x)。
数据范围&空间&精度
- 不开
long long见祖宗。不开ull见祖宗。开了不特判见祖宗。——CSP2020 - 如果要离散化原数组和修改操作,范围要开够。
- 异或、或出来的东西要开两倍
- 如果除初始边以外要加边,开数组时要注意
- 开大数组要记得算空间。方阵
- 你永远不知道C++什么时候会溢出。所以输出之前最好
(ans+mod)%mod,保险起见。 - 看范围的时候要注意负数什么的,DP的时候要不要和自己取
max想清楚。 Choosing Balls - 防止溢出取模一定要勤快 但是什么异或和按位与之类的东西别给我瞎jb乱取模
边界问题
for ( int i=21; i; i-- )和for ( int i=21; i>=0; i-- )竟然是不等价的呢。
重载&排序
- 重载比较运算符一定tm要记得
return!!!!!!!! 死亡案例·今日降智如下↓

- STL中,
priority_queue默认是大根堆,set是小根堆,sort默认升序。自行重载请重载小于号。
算法
最短路
- Dijkstra 用超级原点时不能加双向边,否则边权为0会T。普通快乐
- 搞超级源汇的时候要注意编号一定要设够。
平衡树
- Splay的next查询操作不能返回val,要返回节点编号,否则kth里调用会错
线段树
- 不要像个zz一样建完线段树不
pushup
模拟退火
- SA有多组测试数据的时候不能用CLOCK(后果可想而知)
并查集
- 合并是
fa[fu]=fv,不要写错。
排列组合
- 预处理的时候记得初始化
fac[0]=inv[0]=inv[1]=1
二分
- 作为一个 zz,REH你记住了,以后只能写
l,r,ans,l<=r版本,不要拿着你的假模板到处TLE.
做题注意点&其他
- 有些比较特殊的情况最好一开始就处理好,或者写下来,不然写到后面容易忘记。
- 前后要统一,不要出现后面改了前面没改的情况。改代码一定要谨慎。
- 文件头要加好。
- 不能在有返回值的函数里面不
return,可能会产生 RE 等奇怪错误 - 考虑要完整。
- 有类似的题目做过固然是好的,但是要注意比较数据范围和特殊情况,不要被带偏。有可能一点关系都没有,还想复杂了。
【自用】Notice的更多相关文章
- 如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars ...
- idea快捷键(自用)
idea快捷键(自用) 1.比如输入eclipse下面的main,sysout等,在idea里面同样可以实现,如下: sysout(sout 按tab),main(psvm按tab),具体可按照ctr ...
- linux 下 PHP Notice: session_start(): ps_files_cleanup_dir 报错 问题剖析
如果在ubuntu/Debian下, 采用apt安装的PHP, 那么在使用Session的时候, 就可能会有小概率遇到这个提示. 代码如下: PHP Notice: session_start(): ...
- Postgresql存储过程调试:PostgreSQL 之 Function NOTICE
转载自http://zhenghaoju700.blog.163.com/blog/static/13585951820116782843994/ 先安装一个PostgreSQL(见补充知识) 比较O ...
- [转]PHP如何关闭notice级别的错误提示
1.在php.ini文件中改动error_reporting改为: error_reporting=E_ALL & ~E_NOTICE 2.如果你不能操作php.ini文件,你可以使用如下方法 ...
- 自用debug单元
将之前的内存查看单元小幅修改,加上文件操作和计时,组成了一个自用debug单元,使用方法如示例. 此单元便捷之处在于直接将#define DEBUG注释掉而无需改动源码,即可取消debug模式. #d ...
- Notice: Only variable references should be returned by reference(PHP版本兼容性问题)
摘自:http://sushener.spaces.live.com/blog/cns!BB54050A5CFAFCDD!435.entry PHP5一个很让人恼火的一点就是BC(向后兼容)不是很理想 ...
- php提示 Notice: Use of undefined constant name - assumed
我们知道php在数组中写变量有二几种方法,我们出现这种提示就是你写成了[name]这种所以会有Notice: Use of undefined constant name - assumed name ...
- PHP如何关闭notice级别的错误提示
1.在php.ini文件中改动error_reporting改为:error_reporting=E_ALL & ~E_NOTICE2.如果你不能操作php.ini文件,你可以使用如下方法在你 ...
随机推荐
- linux 进程间通信 共享内存 mmap
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式.两个不同进程A.B共享内存的意思是,同一块物理内存被映射到进程A.B各自的进程地址空间.进程A可以即时看到进程B对共享内存中数据的更新,反 ...
- mysql 触发器的创建和使用
什么是触发器 触发器(TRIGGER)是MySQL的数据库对象之一,从5.0.2版本开始支持.该对象与编程语言中的函数非常类似,都需要声明.执行等.但是触发器的执行不是由程序调用,也不是由手工启动,而 ...
- 守护进程详解以及start-stop-daemon命令
1.概念:守护进程是在后台运行的不受终端控制的进程,通常守护进程在系统启动时自动运行,守护进程的名称通常以d结尾,比如sshd.xinetd.crond等. 2.创建守护进程的步骤:a.调用fork( ...
- Fiddler的一系列学习瞎记3
Http: 不安全.可以很容易被拦截,或者其他的嗅探工具发现.怎么样做到安全?起码一下两点: 1.浏览器和we服务器之间的内容应该只有浏览器和web服务器能看到通信内容. 2.Http请求和Http的 ...
- 一篇文章了解_selenium
(一)安装selenium 2018年10月7日 星期日 11:14 安装python 打开 Python官网,找到"Download", 在其下拉菜单中选择自己的平台(Windo ...
- sqlilab less1-less10
less-1 参数被单引号包裹,加单引号,闭合后绕过 less-2 参数没有被包裹,直接带入查询,不需要闭合 less-3 参数被 ('$id') 包裹,需要将他闭合 less-4 参数被小括号和双引 ...
- jQuery 第九章 工具方法之插件扩展 $.extend() 和 $.fn.extend()
$.extend() $.fn.extend() -------------------------------------------------- $.extend() 插件扩展(工具方法) jq ...
- 开源认证和访问控制的利器keycloak使用简介
目录 简介 安装keycloak 创建admin用户 创建realm和普通用户 使用keycloak来保护你的应用程序 安装WildFly client adapter 注册WildFly应用程序 安 ...
- 使用Eclipse创建Maven的JSP项目
使用Eclipse创建Maven的JSP项目 MyEclipse2015根本不行,试过各种解决方案都无济于事. 创建Maven项目 此时项目上有错,pom.xml有错. 修改Java版本 生成web. ...
- flink:JobGraph生成过程分析
1.JobGraph是由StreamGraph转换而来,当client将StreamGraph提交后,job启动前会先完成转换,统一的转换入口如下: 2.StreamingJobGraphGenera ...