**:
1. freopen(「1.txt」,」r」,stdin);
freopen(「1.txt」,」w」,stdout);
2. memset(a,0,sizeof(a));
陣列定義int a[10] 為全域性變數的話,其全部元素預設賦值為0;整型資料預設為0,字串預設為空。
3. #define max 0x0ffffff;
#define min -0x0ffffff;
4. 多組測試資料使用 while(n--)
5. 一般用c語言節約空間,要用c++庫函式或stl時才用c++;
cout、cin和printf、scanf最好不要混用。而且需要注意的是,如果題目是大規模資料的輸入輸出,盡量使用printf和scanf,資料量一大,速度明顯比c++的輸入輸出快。 輸出1000000個資料,cout 大概用6s printf 用了0.562s
6. 有時候int型不夠用,可以用long long或__int64型(兩個下劃線__)。
值型別表示值介於 -2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854,775,807 )之間的整數。
printf("%i64d",a);
printf("%lld",a);
7. oj判斷是只看輸出結果的。
所以大部分題處理一組資料後可以直接輸出,就不需要用陣列儲存每乙個case的資料。
8. 純字串用puts()輸出,會增快速度。
9. 先用scanf(),再用gets()會讀入回車。scanf("%c%c",&c1,&c2) 後者會讀入空格和回車;要使用getchar()吸收空格和回車的錄入,使用c語言讀字元和字串一定要十分小心。盡量寫好就自己輸出一下看看是否是自己需要的值被讀入。
10. 讀到檔案的結尾,程式自動結束
while( ( scanf(「%d」,&a) ) != -1 )
while( ( scanf(「%d」,&a) ) != eof)
while( ( scanf(「%d」,&a) ) == 1 )
讀到乙個0時,程式結束
while( scanf(「%d」,&a) &&a)
讀到多個0時,程式結束
while( scanf(「%d%d%d」,&a,&b,&c)&&a+b+c ),該方法不能讀取負值。
11. 圓周率=cos(-1.0) 自然對數=exp(1.0)
12. 如果要乘或除2^n,用位移運算速度快。a>>n;a<
int calc(int n,int m)
return re;
}13. 定義陣列時,陣列大小最好比告訴的最大範圍大一點。字元陣列大小必須比字串最大長度大1。
14. 習慣使用三目運算子
int max(int a,int b)
int ***(int m,int n)
int abs(int a)
15. 有的題資料範圍小但是計算量大可以用打表法,先把結果算出來儲存在陣列裡,要用時直接取出來。
16. 大概的計算自己程式的時間的方法:引入標頭檔案:#include主函式末尾新增上一句cout<<(double)clock()/clocks_per_sec;但是輸入必需重定向,不然會計算輸入資料等待時間。
17. runtimeerror 一般這種錯誤都是下標越界或者是未賦值的變數就直接使用這兩種情況,一定要好好排查,不仔細一般找不出來。另外還有在函式內開了乙個比較大的陣列,使堆疊耗盡所以出錯。
環境配置過程中的一些小tips
在給自己的kali虛擬機器配置環境時走了一些彎路,總結如下 1 不建議使用git clone語句從github 上 clone資源 太慢了 解決方法 編譯後安裝 make make install 或是 sudo python 檔名.一般是setup.py install 安裝完成 2 pip容易出...
mmap學習過程中的一些小問題
mmap將乙個檔案或者其它物件對映進記憶體。檔案被對映到多個頁上,如果檔案的大小不是所有頁的大小之和,最後乙個頁不被使用的空間將會清零。具體函式定義如下 include 對映函式 void mmap void start,size t length,int prot,int flags,int fd...
了解SQL 學習過程中的一些小知識
今天是開通的第一天,這是第一篇部落格。為了進網安實驗室,開始學習網安的一些相關知識。本人是一名徹徹底底的小白,在此之前幾乎沒接觸過網安方面,因此所寫部落格的內容可能不僅有些淺薄,還存在一些漏洞。我會把學習過程中知道的一些新知識放進來,便於回顧。若有大佬發現錯誤之處,懇請斧正!本篇主要關於sql語言。...