卡常数

运算符号

本机CPU: 13th Gen Intel(R) Core(TM) i5-1340P 1.90 GHz

编译器:gcc:g++ (Rev2, Built by MSYS2 project) 14.2.0,c++17

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
signed main(){
    ll A=1;
    for(ll i=1;i<=1000000000;++i){
        A+=(formula...);
    }
    cout<<A<<endl;
    return 0;
}

\(10^9\) 次同种运算,赋值运算影响忽略。

operation time1 time2 time3
only += 1694 1725 1707
ll + ll 1687 1702 1710
ll - ll 1714 1690 1715
ll * ll and ll % 3226 3196 3225
ll / ll 3419 3415 3455
ll >> 1390 1378 1381
ll << 1381 1396 1387
ll & ll 1721 1688 1701
ll | ll 1718 1710 1726
ll ^ ll 1710 1730 1703
ll++ 1687 1679 1658
++ll 1477 1473 1468
ll % ll(int) 2325 2299 2293
ll < ll (>) 1446 1472 1489
ll == ll (!=) 1434 1464 1456
ll && ll (logic) 1440 1417 1427
ll ? ll : ll 1406 1422 1394

读写

template<typename T>
void read(T &a){
	#define gc getchar()
	char c;a=0;int f=1;
	while(!isdigit(c=gc))if(c=='-')f=-1;
	do a=a*10+c-'0';
	while(isdigit(c=gc));
	a*=f;
}
template<typename T>
void write(T a){
	if(a>=10)write(a/10);
	putchar('0'+a%10);
}

(速度越快,优先级越大,大小显示优先级)

\[scanf < getchar \]

\[printf < puts < putchar \]

其他

  • 循环展开
  • O2
  • 位运算
  • 逗号运算符比分号快
  • const 标识符
  • 少用取模
posted @ 2025-04-10 14:46  妖灵梦  阅读(23)  评论(0)    收藏  举报