卡常技巧
超级快读快些
- 火车头
据CF896E的数据来测试,几乎一样的速度。
- Fast IO !!!
具体见:
https://www.luogu.com.cn/blog/gsczl71/syxqwq-que-xing-yuan-kuai-du-kuai-xie
https://www.luogu.com.cn/blog/gsczl71/kuai-du-kuai-xie-my-que-xing-yuan
- 前置++ 与 --
- 连续访问空间
例如;
for(int i = 1;i <= n;i++)for(int j = 1;j <= n;j++)a[i][j];
比
for(int i = 1;i <= n;i++)for(int j = 1;j <= n;j++)a[j][i];
快2~3倍。
- register 放在变量名前
- inline 放在函数名前
- short 换 int
- long long 换 int
注意:long long 从头慢到脚趾尖
- 位运算
将 % 2 换成 &1
÷2 换成 >> 1
×2 换成 << 1
17 % 2 可写成 17 & 1,45 % 4 可写成 45 & 3, 986 % 16 可写成 986 & 15。
- if换成三目
- 声明常数
- ;换成,
玄学
- bool 换成 int
玄学+1
- 循环展开
for(int i=1;i<=n;++i)
a=1,b=1;
改成
for(int i=1;i<=n;++i)a=1;
for(int i=1;i<=n;++i)b=1;
- 换掉x=-x
改成:
i = ~i + 1; // NOT 写法
i = (i ^ -1) + 1; // XOR 写法
- x++改成x=-~x;
- x=1<<y; 求2^y
维度大的放前面
如:
int dp[100000][10][2];
手写algorithm里的函数,手写%
我的缺省源
参考文献:
本文来自博客园,作者:gsczl71,转载请注明原文链接:https://www.cnblogs.com/gsczl71/p/17854598.html
gsczl71 AK IOI!RP = INF 2024年拿下七级勾!