【模板】手工栈(扩栈)
由于windows下的评测极其容易爆内存栈,然而部分LJ OJ依然在用windows的服务器,以下手工扩栈代码(比赛禁用!)
const int main_stack=16; char my_stack[128<<20]; int main() { __asm__("movl %%esp, (%%eax);\n"::"a"(my_stack):"memory"); __asm__("movl %%eax, %%esp;\n"::"a"(my_stack+sizeof(my_stack)-main_stack):"%esp"); tmain(); __asm__("movl (%%eax), %%esp;\n"::"a"(my_stack):"%esp"); return 0; //add stack copy copy!!! }用法,将这个复制到程序末尾,将原本的int main() 改成tmain()即可