開發與維運

編程技巧總結

編譯與運行

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

Leave a Reply

Your email address will not be published. Required fields are marked *