有时候,我们需要dfs,但是当dfs深度较大时就会爆栈,这时候我们就需要手动扩栈,下面是实现代码:
#define OPENSTACK #include<bits/stdc++.h> using namespace std; int main() { #ifdef OPENSTACK int size = 64 << 20; // 64MB char *p = (char*)malloc(size) + size; #if (defined _WIN64) or (defined __unix) __asm__("movq %0, %%rsp\n" :: "r"(p)); #else __asm__("movl %0, %%esp\n" :: "r"(p)); #endif #endif OPENSTACK; // #ifdef OPENSTACK // exit(0); // #else // return 0; // #endif }