每天一个爆零小技巧个人用的常数小技巧_自用

Posted czyarl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天一个爆零小技巧个人用的常数小技巧_自用相关的知识,希望对你有一定的参考价值。

  • 不论整数,浮点数,除法是真的慢
  • 整数取模尽量避免,这也是大部分程序的卡常关键
  • 要尽可能让几次对一个数组的调用地址距离近。比如(f_{i,j,k})中,大部分运算是在相同的(i,k)下做的,那么我们应该存为f[i][k][j]。
  • 一个优秀的快读快输很有必要
template<typename T>void Read(T &cn)
{
	char c; int sig = 1;
	while(!isdigit(c = getchar())) if(c == ‘-‘) sig = -1; cn = c-48;
	while(isdigit(c = getchar())) cn = cn*10+c-48; cn*=sig;
}
template<typename T>void Write(T cn)
{
	if(cn < 0) {putchar(‘-‘); cn = 0-cn; }
	int wei = 0; T cm = 0; int cx = cn%10; cn/=10;
	while(cn) wei++, cm = cm*10+cn%10, cn/=10;
	while(wei--) putchar(cm%10+48), cm /= 10;
	putchar(cx+48);
}
  • 一个优秀的快速幂也比较有用
LL ksm(LL cn, LL cm) {LL ans = 1; while(cm) ans = 1ll*ans*(1+(cn-1)*(cm&1))%MOD, cn = cn*cn%MOD, cm = cm>>=1; return ans; }
  • 循环展开是最后的计策
  • memset,最好算好要用前多少位,然后精确清零
  • 正确分析好程序的复杂度瓶颈,然后只在瓶颈上优化,除非其它地方优化起来太方便了,可以顺手搞一下

以上是关于每天一个爆零小技巧个人用的常数小技巧_自用的主要内容,如果未能解决你的问题,请参考以下文章

提效小技巧——记录那些不常用的代码片段

winform中的小技巧自用

Android课程---Android Studio使用小技巧:提取方法代码片段

VS中添加自定义代码片段——偷懒小技巧

rman备份写入日志小技巧

做OI题时的一些常用的常数优化小技巧