【查询类博客】OI tips
memset 相关
0 \(\quad\)//0
-1\(\quad\)//-1
0x3f //int 和 long long 较大值 相加不爆
0x7f //int 和 long long 最大值 相加会爆 double 较大值
0xc0 //int 和 long long 较小值 相加不爆
0xc2 //double 较小值
时间复杂度与数据规模对应关系(极安全值)
\(O(1) \quad\quad∞\)
\(O(logn) \quad10^{18}\)
\(O(n)\quad \quad10^7\)
\(O(nlogn)\quad 10^5\)
\(O(n^2) \quad\quad10^3\)
\(O(n^3) \quad\quad10^2\)
\(O(2^n)\quad\quad n<=24\)
\(O(n!)\quad\quad n<=12\)
>>1和/2的区别(不讨论性能)
">>1"向下取整
"/2"向0取整
也就是说,当被除数小于0且被除数是奇数时
">>1"结果偏小,"/2"结果偏大
字符位运算
字母&31 = 字母在字母表中的顺序(大小写一样)
大写字母^64 = 1~26
小写字母^64 = 33~58
数字^64=112~121
数字^48=数字本身值
常用数学库
log10(x) x以10为底的对数
自加自减的执行时机
while(len--) cout<<len<<endl;
这条语句的执行顺序:
读取len的值
len的值-1
cout len的值
关于inline的简短总结
- 本质类似于宏定义
- 由于1,inline只适合简短的,无递归的,被频繁调用的函数
- Inline仅仅是对编译器的建议,所以如果你写inline的位置很傻X,编译器大概率会视而不见
- inline函数中不可出现循环结构