天天看点

编程技巧总结pragma comment(linker, "/STACK:102400000,102400000")

编译与运行

创建run.bat并输入如下代码:
@echo off           

set path=c:mingwbin

g++ -g 274.cpp -o 274.exe

if errorlevel == 1 goto :next

274.exe

:next

  然后在终端中运行run即可

  

对拍

创建pai.bat并输入如下代码:
@echo off           

set path=c:mingwbin

g++ -g makedata.cpp -o makedata.exe

g++ -g 1.cpp -o 1.exe

g++ -g 2.cpp -o 2.exe

:loop

set path=c:mingwbin

makedata.exe

1.exe

2.exe

set path=c:windowssystem32

fc read1.out read2.out

if errorlevel == 1 pause

goto loop

    

开栈

//Windows下代码:               

int __size__=20<<20;//20MB

char __p__=(char)malloc(__size__)+__size__;

__asm__("movl %0, %%espn"::"r"(__p__));

//linux下代码:

pragma comment(linker, "/STACK:102400000,102400000")

常数优化

1、选几个主要的循环,定义循环变量为register int 2、循环中使用++i,而不是i++ 3、循环展开,一般展开4层足矣 4、使用读入优化和输出优化 5、如果某些OJ不开O2的话,你可以使用如下代码强制开O2
#pragma GCC optimize("-O2")           
inline int add(int a,int b){return (a+=b)>=mod?a-mod:a;}           

inline int sub(int a,int b){return (a-=b)<0?a+mod:a;}

inline int mul(int a,int b){return 1LLab%mod;}

6、取模运算建议这样写:(这样避免了使用long long以及尽量少的使用%符号

gdb调试

//在终端里运行:           

$ gdb 文件名.exe

$ b 13 //在13行设置断点

$ r //运行至断点

$ n //单步跟踪

$ s //进入函数

$ p a //输出变量a的值

云服务器ECS地址:阿里云·云小站

继续阅读