【模板】缺省源
Debug
inline void debug() { cerr << '\n'; }
template<typename Type, typename... Other>
inline void debug(const Type& x, const Other&... y) { cerr << x << ' '; debug(y...); }
#define DEBUG(a...) cerr << "[" << #a << "] = ", debug(a)
Read In
template<typename Type>
inline void read(Type &res)
{
res = 0;
int ch = getchar(), flag = 0;
while (!isdigit(ch)) flag |= ch == '-', ch = getchar();
while (isdigit(ch)) res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
res = flag ? -res : res;
}
template<typename Type, typename... Other>
inline void read(Type &res, Other&... y) { read(res), read(y...); }
Fast Write out
仅支持非负整数
template<typename Type>
inline void write(Type x, const char ch = 10)
{
static Type stk[40];
int top = 0;
do stk[++ top] = x % 10, x /= 10;
while (x);
while (top) putchar(stk[top --] + 48);
putchar(ch);
}
Base Template
#include <bits/stdc++.h>
using namespace std;
// #define int long long
// #define x first
// #define y second
#define File(a) freopen(a".in", "r", stdin), freopen(a".out", "w", stdout)
inline void debug() { cerr << '\n'; }
template<typename Type, typename... Other>
inline void debug(const Type& x, const Other&... y) { cerr << x << ' '; debug(y...); }
#define DEBUG(a...) cerr << "[" << #a << "] = ", debug(a)
typedef long long LL;
typedef pair<int, int> PII;
const int N = 200010;
const int INF = 0x3f3f3f3f;
template<typename Type>
inline void read(Type &res)
{
res = 0;
int ch = getchar(), flag = 0;
while (!isdigit(ch)) flag |= ch == '-', ch = getchar();
while (isdigit(ch)) res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
res = flag ? -res : res;
}
template<typename Type, typename... Other>
inline void read(Type &res, Other&... y) { read(res), read(y...); }
signed main()
{
return 0;
}
GCC Optimize
#pragma GCC target("avx") // AVX指令集(不懂的去问度娘)
#pragma GCC optimize(1) // o1优化
#pragma GCC optimize(2) // o2优化
#pragma GCC optimize(3) // o3优化
#pragma GCC optimize("Ofast") // ofast优化(优化到破坏标准合规性的点),
#pragma GCC optimize("inline") // inline中和
#pragma GCC optimize("-fgcse") // fgcse优化
#pragma GCC optimize("-fgcse-lm") //-fgcse-lm
#pragma GCC optimize("-fipa-sra") //除换
#pragma GCC optimize("-ftree-pre") //快速tree
#pragma GCC optimize("-ftree-vrp") //去重tree
#pragma GCC optimize("-fpeephole2") // flatco2优化
#pragma GCC optimize("-ffast-math") //数论优化
#pragma GCC optimize("-fsched-spec") //富硒优化
#pragma GCC optimize("unroll-loops") //图论plus优化
#pragma GCC optimize("-falign-jumps") //极优化
#pragma GCC optimize("-falign-loops") //图论重+排除
#pragma GCC optimize("-falign-labels") // lamb优化
#pragma GCC optimize("-fdevirtualize") // fugechar优化
#pragma GCC optimize("-fcaller-saves") //负优化排除
#pragma GCC optimize("-fcrossjumping") //极优化p+
#pragma GCC optimize("-fthread-jumps") //多重极优化
#pragma GCC optimize("-funroll-loops") //消除分支可以减少预测的可能性能:比如小的循环可以展开比如循环次数小于64次(可以使用GCC选项 //-funroll-loops)
#pragma GCC optimize("-fwhole-program") //弗洛伊德优化
#pragma GCC optimize("-freorder-blocks") //半刻优化
#pragma GCC optimize("-fschedule-insns") // fschedule-insns优化
#pragma GCC optimize("inline-functions") // inline-functions优化
#pragma GCC optimize("-ftree-tail-merge") //-ftree-tail-merge优化
#pragma GCC optimize("-fschedule-insns2") //-fschedule-insns2优化
#pragma GCC optimize("-fstrict-aliasing") //-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")
update on 2024.10.25.
手动分配内存
大约为 1GB(注意无法 delete 指针)。
char pool[1 << 30], *ptop = pool + (1 << 30);
void *operator new(size_t size) { return ptop -= size; }
Fread 优化快读
char buf[1 << 20],*p1 = buf, *p2 = buf;
inline char getchar()
{
if (p1 == p2)
{
p1 = buf;
p2 = buf + fread(buf, 1, 1 << 20, stdin);
if (p1 == p2) return EOF;
else return *p1 ++;
}
return *p1 ++;
}
#define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 20, stdin), p1 == p2)? EOF: *p1 ++)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!