陣列大了開外面,,天知道我為啥會犯這種錯誤
multiset帶乙個引數的erase函式原型有兩種。一是傳遞乙個元素值,這時候刪除的是集合中所有值等於輸入值的元素,並且返回刪除的元素個數;另外一種是傳遞乙個指向某個元素的iterator,這時候刪除的就是這個對應的元素,無返回值。有可能出現**中本意是想刪除乙個元素,但實際上是刪除了所有值為x的元素。刪除乙個元素**:
auto pos = ms.
find
(x);
ms.erase
(pos)
;//maya,調了好久。。
除了2以外的所有素數都是奇數。。。
two times more ,是兩倍的意思,,不是多了兩個,,
pow函式必須賦值給double型資料,且存在一定誤差,如經過運算後原本的125這個逼近值最後被存為浮點時變成124.9999,所以取整前應加上0.1(玄學數字)
0沒有乘法逆元,,,今天又被自己的無知坑了,,,
multiset 必須使用ms.lower_bound,而不是lower_bound(all(ms)),會超時。。。。
優先佇列priority_queue,預設優先順序大的在前面比如:98654這樣子,可以記為和sort相反,自定義cmp格式為
//priority_queue
//讓小的在隊頭
struct cmp};
priority_queue
,cmp>q;
異或操作滿足消去律,與,或運算均不滿足
陣列去重: v.erase(unique(v.begin(), v.end()), v.end());
生成隨機數
mt19937 gen
(chrono::steady_clock::
now().
time_since_epoch()
.count()
);//設定種子
uniform_int_distribution<
>
dis(
1,n)
;//隨機數範圍
cout<<
dis(gen)
/生成隨機數
unordered_map比map要慢!,,,t了幾發才反應過來。詳見此部落格
sin的用法
#define pi 3.1415927
x=(ct/
180*pi)
;x為弧度,ct為角度
同理,cos,tan,asin,atan,acos都是用的弧度
next_permutation生成陣列的全部排列
用?:運算子的時候一定要單獨括起來!!!!
如果編譯錯誤但是vs沒有錯誤提示,檢查main是不是拼錯了。。。
一定,一定要注意變數重名問題,尤其是多層迴圈!
使用巨集定義迴圈時注意資料範圍!rpp(i,n)當n為ll時候會出錯
粗心的小李
小李的店裡專賣其它店中下架的樣品電視機,可稱為 樣品電視專賣店。其標價都是4位數字 即千元不等 小李為了標價清晰 方便,使用了預製的類似數碼管的標價籤,只要用顏色筆塗數字就可以了 圖形不能上傳,請參見qq群 這種價牌有個特點,對一些數字,倒過來看也是合理的數字。如 1 2 5 6 8 9 0 都可以...
聰明的小李
description 小李的識記能力非常強,一列數他一看就知道最大的是哪個數,這個數在原數列中的位置。現在的問題是給定乙個各不相同的正整數數列,要你找出第k大的數是多少,並指出該數在原數列中的位置。input 共有三行,第一行是乙個正整數n,表示原數列共有n個數,第二行是n個正整數,表示原數列中的...
聰明的小李
description 小李的識記能力非常強,一列數他一看就知道最大的是哪個數,這個數在原數列中的位置。現在的問題是給定乙個各不相同的正整數數列,要你找出第k大的數是多少,並指出該數在原數列中的位置。input 共有三行,第一行是乙個正整數n,表示原數列共有n個數,第二行是n個正整數,表示原數列中的...