这里总结比赛技巧,具体算法看这里:算法 Algorithm
用户空间程序:默认栈大小约为 8MB(ulimit -s 查看,单位是 KB,常见为 8192)
这样的空间大小是肯定跑不了2e5的递归的
g++ 本身没有参数可以直接设置栈大小,因为栈大小是由操作系统在运行时为程序分配的资源,不是由编译器控制的。
Atcoder和Codeforces的栈空间相对来说是比较大的,一般写大递归也没问题,只是在其他地方要注意(特别是找工作时候的笔试网站)
AI: 根据 ICPC 官方文档:
比赛的运行沙箱会分配 最多 2 GB 的总内存(包括栈、堆、全局内存等)。
C/C++ 程序的栈大小一般是 unlimited,实际受到总内存容量限制。
结论:ICPC 比赛中,C++ 的栈几乎不受限制,只要 整个程序总内存不超过 2 GB。