不寫x1,y1,x2,y2
不寫hash,next
不寫vector 的 t:v
戒掉些register的習慣
define cout cerr 是個除錯的好習慣,但之後一定要把所有cout cerr刪掉,不刪掉應該不會影響檔案對比,但cout會極大地影響你的執行效率
刪掉assert
字串的乙個好的部落格
scanf:讀進開頭一段截止字元,然後有效,再遇到截止字元停下,不讀取
cin:一樣
gets:從當前字元讀取到截止字元
cin.getline(str,len):如果當前字元到截止字元中間的字元》=len個,讀取len-1個
否則,一直讀取到截止字元
cin.get(str,len):如果當前字元到截止字元中間的字元開局先把所有題看一遍
如果一道題30 min中沒有思路,那就換道題
發現碼量過大,此時應該背水一戰,去剛a
考試前兩個小時,最好是前90分鐘,每道題都能稍微想一想
看到模數想原根,質因數分解之類
1.結構體中
注意定義《的作用
它可以同時定義好》,>=,<=,==
不過unique的==需要另外定義
所以搞清楚自己的排序
set中=是會被清除的
所以struct d{ int pos; bool operator <(const d &z)const{return a[pos]好東西
《的定義中,對於相等的
非自反性(irreflexive)
comp(x, x)必須為假
非對稱性(antisymmetric)
comp(x, y)和comp(y, x)的結果必然相反
可傳遞性(transitive)
如果comp(x, y)為真,comp(y, z)為真,那麼comp(x, z)必然為真
很多時候,x0,y0的結構體和x1,y1的結構體中
就算x0!=x1或y0!=y1,我們也不妨定義這兩個結構體是相等的
例子:分數
如果實在有點不舒服,無法接受這樣的操作
可以在比較商的情況下再比較下x0,x1和y0,y1
所以啊,《的過載中不要作死寫乙個<=
排序就是,值小的在值大的前面,值相等的隨便排,寫題目時看這這樣的規則是不是就是自己想要的演算法步驟(通常是貪心的演算法步驟)
2.vector< int >空的時候是6個int(64位),3個(32位)
set的大小乘2
記憶體不小於4gb的電腦都是64位的
3.注意指標降級
所以void func(int *a)中,memset(a,0,sizeof(a))要小心了
二維陣列的傳入
void func(int a[m][n])或 void func(int a[n])
都是傳位址
互動庫的grader
今天,2019.12.10被坑了
上面評測的grader和下面不一樣
這意味著什麼
上面的加namespace,下發的可以不加
所以注意全域性變數
如果你的全域性變數和下發的grader衝突了
例如grader中有全域性變數n,你的**中也有全域性變數n
啊,編譯不通過
於是你把你**中的n刪了,boom,上去編譯完蛋
於是你本地測試//i
nt
n//int\ n
//intn
好,編譯通過,調教刪掉斜槓
啥,wa了
本地不是測試了嗎
哎呀,原來上面測試因為沒斜槓,發現你沒成功給這個n賦值
但是本地怎麼過的呢
簡單,本地你呼叫的n是grader的,上面是你的code的…
全域性變數衝突,不要輕易刪掉,記下來,眼查自己有沒有做好它的相關工作,然後斜槓,測試完了去除,提交
也可以試著換個名字
如果你發現grader的同名變數不是乙個含義,那最好是換乙個變數名
當然,如果你是暴躁老哥,暴改grader也不失為一種辦法
5.多組資料的特判後是continue,不是return 0
OI比賽注意事項(不定期更新)
1.該開longlong的想到就開 不然忘了能哭死你 2.雙向邊開雙倍空間 3.注意可能存在的陣列越界 主要是類似a 1 4.盡量少mod或用減法代替取模 5.自然溢位hash不可取 6.注意比賽的評測環境以區分long long的識別符是lld還是i64d 7.fft等和二的次冪有關的空間要開到2...
java DOM 注意事項
1.w3c把標籤內的文字部分也定義成乙個node 2.element物件代表的是xml文件中的標籤元素 繼承於node,亦是node的最主要的子物件 3.attr實際上是包含在element中的,它並不能被看作是element的子物件,因而在dom中attr並不是dom樹的一部分,所以node中的 ...
static注意事項
static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...