大数据递归栈溢出问题
2015-08-31 00:29
239 查看
转载:http://forum.byr.edu.cn/article/ACM_ICPC/51264
大家懂的,鉴于HDU用的是windows服务器,所以stack大小及其坑爹,稍微深一点的递归栈就会stack overflow。
通常的规避方法是用stack或者手写stack模拟栈的递归过程。这个极其蛋疼啊,而且被卡了STL也很得不偿失唉。(话说这一切都是基于非现场赛来说的,现场赛怎么会卡你这些玩艺儿。)
从Lost(庄立大神)那里学来一种规避栈溢出的方法。
在文件gui头处加上这么一句
#pragma comment(linker, "/STACK:1024000000,1024000000")
后面两个数字随便写。。。你觉得能过就好,另外不要超了栈内存的真正上限。
基于VC++的编译预处理命令,不知道GNU C++上面有没有对应的方式。
去MSDN看一眼就会找到对这一句的对应说明,大概在编译器选项那里。
当然咯,这个代码必须拿C++来提交,所以C++会出现的那种long long 和__int64的问题也要注意到。。。
某题我stack模拟dfs 2500+ms,开放了栈内存的普通dfs 300+ms。。。不解释。。windows伤不起啊。
小小建议,欢迎拍转。
--
大家懂的,鉴于HDU用的是windows服务器,所以stack大小及其坑爹,稍微深一点的递归栈就会stack overflow。
通常的规避方法是用stack或者手写stack模拟栈的递归过程。这个极其蛋疼啊,而且被卡了STL也很得不偿失唉。(话说这一切都是基于非现场赛来说的,现场赛怎么会卡你这些玩艺儿。)
从Lost(庄立大神)那里学来一种规避栈溢出的方法。
在文件gui头处加上这么一句
#pragma comment(linker, "/STACK:1024000000,1024000000")
后面两个数字随便写。。。你觉得能过就好,另外不要超了栈内存的真正上限。
基于VC++的编译预处理命令,不知道GNU C++上面有没有对应的方式。
去MSDN看一眼就会找到对这一句的对应说明,大概在编译器选项那里。
当然咯,这个代码必须拿C++来提交,所以C++会出现的那种long long 和__int64的问题也要注意到。。。
某题我stack模拟dfs 2500+ms,开放了栈内存的普通dfs 300+ms。。。不解释。。windows伤不起啊。
小小建议,欢迎拍转。
--
相关文章推荐
- 【转载】MFC的Main函数跑哪去了
- 智慧城市监控照明物联网管理系统应用分析
- 物联网云平台的建设将覆盖全领域
- TurboMail邮件系统与利郎服装集团合作
- OC之非ARC环境下循环retain问题
- 【ITOO高校云平台】——Html.RenderPartial&Html.RenderAction
- Aircrack-ng之Aireplay-ng命令
- 几种常用RAID的特性
- DOD发布三款云计算安全标准
- trait里的默认函数会为每个类型拷贝一份
- HDFS snapshot操作实战
- Apache之——命令行启动出现Failed to open the Apache2.2 Service解决方案
- 软raid-mdadm命令
- RAID常用等级介绍
- XML XML常见的操作 http://blog.csdn.net/pbymw8iwm/article/details/7899156
- HDU1022 Train Problem I
- 物联网:点燃JAVA未来之路的火炬
- UltraISO制作U盘启动盘
- UVA 442 二十 Matrix Chain Multiplication
- HDU 4458 Shoot the Airplane (2012年杭州赛区现场赛F题)