c++中 如果時間超上限
做題上:
考慮關於二進制的方法 比如說
find your present (2)
這道題 可以用異或運算 來發現不重復數
對於動態規划 狀態壓縮發面 方面應用更多
比如說poj 1185 炮兵布陣
其中地圖用二進制表示 十進制儲存 運算起來十分方便
輸入輸出:
c++ 的 cin(istream) 就不如scanf() 時間上速度
同樣類比一下cout 不如printf 速度。
注意事項:
1 。用<<運算符申請空間或者表明大小時 必須加括號 這樣申請
int a[1<<16];//error int a[(1<<16)];//true;
在oj上會超時(實測)
2.看了個大佬關於vector的詳解 鏈接
重點結論就是:
當動態數組內的元素比動態數組長度多一時,動態數組長度翻倍!
也就是說:if(v.size()-1==v.capacity()) v.resize(v.capacity()*2);
而長度翻倍是很花時間的。所以說做題的時候,記得事先把vector的長度拉得足夠長,以免運行的時候,vector長度翻倍浪費時間。