- 2022tysc0306 的博客
玄学方法——卡常
- 2024-5-25 16:13:36 @
发现 -> 更快
发现卡时技巧。
发现将颜色重编号卡过莫队。
1.输入输出:
- 快读
inline int read()//快读
{
register int x = 0, t = 1;
register char ch = getchar();
while(ch < '0' || ch > '9'){if(ch == '-') t = -1;ch = getchar();}
while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + (ch ^ 48);ch = getchar();}
return x * t;
}
- 快写
inline void write(int x)//快写
{
if(x < 0){putchar('-');x = -x;}
if(x > 9) write(x / 10);
putchar(x % 10 + '0');
}
2. &
- :
inline 函数类型 函数名()
register 数据类型 数据名
3.位运算
前言:一定要加()
- 代替 运算
- &
- 快速幂
#include <iostream>//cin cout
#define int long long//优化
using namespace std;//命名空间
int n, m, k;
inline int ksm(int n, int m, int k)
{
int ans = 1;
while(m){
if(m & 1) ans = ((ans % k) * (n % k)) % k;//同余定理
n = ((n % k) * (n % k)) % k;
m >>= 1;
}
return ans;
}
signed main()//主函数
{
cin >> n >> m >> k;
cout << ksm(n, m, k);
return 0;//华丽结束
}
inline void swap(int &a, int &b)
{
a ^= b ^= a ^= b;
return;
}
4.其他
- -> unordered_map
- \n 替换
- 直接开
long long
不如#define int long long & signed main
- 三目运算符 替换 &
- 尽量用
- # (用 即可)
,
比;
快(?)- bool 慢,int 快
- 前置
++
- ->
- 将颜色重编号卡过莫队
极限卡时:
int start = clock();
while(clock() - start >= CLOCKS_PER_SEC * 0.98)