杂项
1、sort函数排序区间左闭右开。
2、哈密顿回路为经过所有点的回路。
3、int上限约为21亿,long long约为\(1.8 \times 10^{20}\)
4、较小的元素尽量靠前的方案 = 最大字典序的翻转序列(贪心)
5、标准输入输出中
scanf:float用%f,double用%lf,long double用%Lf
printf:float用%f,double用%f,long double用%Lf
6、[P1024]一元三次方程求解 整理一下里面的思路
7、平面最远点对一定在凸包上(暂时没有计算几何分区,先放这吧)
8、建反图时正反边相邻存储且从2开始,这样就可以用i^1互相访问反边了(暂时没有网络流分区,先放这吧)
9、位运算有关题分位讨论(整理P6102)
10、类人群星闪耀时(CSP2022大寄)
11、局部变量记得初始化
12、多测不清空,亲人两行泪
目前中招:
图论:head[],tot
线段树:add,lazy标记
13、SublimeText3取消dinner代码补全:Preferances -> Settings -> 在代码块中加入"auto_complete": false\(\textcolor{red}{,}\)
14、快写中“if(x>9) print(x/10);”不要写成“x>10”
15、Linux在命令行中开大栈空间:ulimit -s xx (可用ulimit -a查询当前栈空间大小)
16、upper_bound与lower_bound的用法,详见STL(注意lower_bound不是字面意思<=,而是>=)
17、以后离散化时少用ref[],在loj会CE(好像是和std重了)
18、本地和评测机不一致:UB(未定义行为)
1、数组越界/数组没清干净导致的未知越界
2、自增语句(
a[++n]=read()^a[n-1]中,\(n\)不知道先执行哪个)
19、double类型的判等(==)会有精度误差,建议用\(|x-y|<eps\)来判断(这个就没过(hack))(当然,也不要开得太小(link1 link2))
20、对于整数\(x\),\(-x\)的二进制码即为\(x\)的补码,对于二进制减法\(a-b\),可以转变为\(a+((\neg b)+1)\)操作
21、字符串比较只有当前位相等才用继续下一位比较,注意写法上的缺漏会导致错判
整理gcd矩阵
22、当出现不定组数读入时,用到的类似while(cin>>n)或while(~scanf("%d",&n)):
对于cin,istream数据类型已经整好了(正常返回值非0,EOF返回0),直接用即可
对于scanf,是直接返回读入个数或EOF,需要手动判('~'是取反,也可以直接!=EOF)
23、double类型限位时会自动四舍五入,而强转int不会,因此可写printf("%.0lf\n",a);或cout<<int(a+0.5)<<endl;

浙公网安备 33010602011771号