備戰藍橋杯與csp 進製轉換

2021-10-11 01:35:54 字數 1116 閱讀 8890

r指的是乙個整數,r進製的意思是指逢r進一,常見的主要有,二進位制,八進位制,十進位制,十六進製制,這些數的特點便是每一位上的數不超過r.

與十進位制類似,每高一位,上面的權值也就高了r倍,所以,將r進製轉化為10進製只需要,將每一位上面的數乘以這一位代表的權重,最後相加起來,這裡使用vector來儲存r進製的數,主要是方便操作.

#include

"bits/stdc++.h"

using

namespace std;

using ll =

long

long

;ll r2d

(const vector

&v,int r)

return res;

}int

main()

這裡以二進位制為例,將乙個十進位制數除以二,得到的商再除以二,依此類推直到商等於一或者零時為止,再將每次餘的數倒序,便得到了二進位制數的結果

除數

被除數餘數商2

251122

12062

6032

3112

110將餘數從下向上排列為11001,轉化為十進位制為25,注意,最後會有一步倒序,所以我們選擇了vector 作為儲存容器,呼叫它自帶的reverse函式就可以完成倒序了,以此類推,把2進製推廣到r進製只需要將2換為r即可.

#include

"bits/stdc++.h"

using

namespace std;

using ll =

long

long

;vector

d2r(ll num,

int r)

reverse

(v.begin()

,v.end()

);//將裡面的內容倒序存放

return v;

}ll r2d

(const vector

&v,int r)

return res;

}int

main()

備戰藍橋杯與csp 位運算

資料在計算機裡以二進位制的形式存在,所謂位運算便是直接對資料在記憶體中的二進位制位進行操作.1.位與 1 1 1 0 1 0 1 0 0 0 0 0 我們常常利用 運算把 0 消掉,而保持其他位的1不變,除此之外,我們還可以判斷一些數的性質,下面會提到.a b 1 當且僅當a,b均為1 2.位或 1...

備戰藍橋杯與csp 二分查詢

二分查詢的前提是陣列是有序的 所以經常配合sort函式使用 首先找到陣列中間的值 將陣列分成左右兩部分 比較一下要查詢的數,大了就使用左邊的陣列,小了使用右邊的陣列,接著重複上面的操作,找到或者當左邊右邊重合之後停止查詢.二分查詢每一次都排除了1 2的資料,我們假設t次之後出現結果 m 條資料 那麼...

備戰CSP藍橋杯STL 入門學習queue

最簡單的佇列,具有著先進先出的特點,與桟不同,桟的特點為先進後出。在簡單演算法競賽中多用於bfs,即廣度優先搜尋。這裡記錄其與一般簡單型別,結構體,pair結合使用時的情況。queueq1 q1.push 1 q1.push 2 q1.push 3 q1.push 4 遍歷 while q1.emp...