编程技巧总结

编译与运行


创建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地址:阿里云·云小站


上一篇:[20121203]windows下使用systeminfo查看本机信息.txt


下一篇:Java架构师必须掌握的 21 个 Java 核心技术!(干货)