简单I/O优化
//在算法竞赛里,经常出现输入数据非常多造成 cin TLE(超时)的情况。
//这是C++为了兼容而采取的保守措施。
//我们可以在IO之前将stdio解除绑定,**使得cin和scanf效率相当,
//cout和printf效率相当**。
//一定要注意,这样做了之后要注意
//**不要同时混用cout和printf之类,cin和scanf也不能混用**。
ios::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
__int128的读写
#include<iostream>
using namespace std;
inline __int128 read()
{
__int128 f = 1, s = 0;
char ch = getchar();
while (ch < '0' || ch > '9')
{
if (ch == '-') f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
{
s = s * 10 + ch - '0';
ch = getchar();
}
return f * s;
}
inline void print(__int128 x)
{
if (x < 0)
{
putchar('-');
x = -x;;
}
if (x > 9) print(x / 10);
putchar(x % 10 + '0');
}
int main()
{
__int128 n, m;
n = read();
m = read();
print(n + m);
return 0;
}
宏定义
// define比函数调用更快
#define lowbit(x) (x & -x)
#define LL long long
从大到小排序
// 从大到小排序
sort(a, a + n, greater<int>());
sort(a, a + n, [](int a, int b){ return a > b; });
colck()函数
// colck()函数防止卡常
int start = clock();
if (i % 10000 == 0 && clock() - start >= CLOCKS_PER_SEC * 0.9) break;
计算根号/三次根号
// 计算根号/三次根号
int n = sqrt(num);
int m = cbrt(num);
向上取整 / 四舍五入
int ans = (cnt + n - 1) / n; //实现cnt对n向上取整
int ans = (int)(x + 0.5); //浮点数四舍五入
scanf()
// scanf的返回值以及格式化输入
// 1)scanf返回的是读到元素的个数,未读到返回-1
// 2)scanf格式化输入
int a, b;
scanf("%d:(%d)", &a, &b);
MurmurHash3算法哈希
// MurmurHash3算法哈希
u64 mix (u64 x)
{
x += 0x9e3779b97f4a7c15;
x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
return x ^ (x >> 31);
}
multiset
//multiset是set库中一个非常有用的类型,它可以看成一个序列,
//插入一个数,删除一个数都能够在O(logn)的时间内完成,
//而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。
//以下代码判断是否有互不相交的两个区间。
//[题目来自CodeForces] (https://codeforces.com/contest/1883/problem/D)
multiset<int> L, R;
int main()
{
int n;
cin >> n;
char opt;
int l, r;
for (int i = 1; i <= n; i++)
{
cin >> opt >> l >> r;
if (opt == '+') L.emplace(l), R.emplace(r);
else L.erase(L.find(l)), R.erase(R.find(r));
if (L.size() >= 2 && *L.rbegin() > *R.begin()) puts("YES");
else puts("NO");
}
return 0;
}
火车头优化(emmmmmm)
#pragma GCC target("avx")
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")