【查询类博客】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. 本质类似于宏定义
  2. 由于1,inline只适合简短的,无递归的,被频繁调用的函数
  3. Inline仅仅是对编译器的建议,所以如果你写inline的位置很傻X,编译器大概率会视而不见
  4. inline函数中不可出现循环结构

posted @ 2024-01-26 20:18  yeyou26  阅读(11)  评论(0编辑  收藏  举报