水題系列之一

2021-06-27 15:17:48 字數 598 閱讀 3663

★實驗任務

給定乙個正整數 n,找出另乙個正整數 m,使得 n 和 m 轉化為二進位制時,它們所出現的

「1」 的個數一致,且 m 必須比 n 大。輸出乙個滿足條件的最小的 m。

例如 78,轉換成二進位制為 1001110,這個二進位制數中有 4 個「1」。而 83(1010011)和

86(1010110)都滿足二進位制中「1」 的個數與 78 一樣,且值都比 78 大。但顯然 83 是最小

的那個,輸出它。

★資料輸入

輸入乙個整數 n(1<=n<=100000)

★資料輸出

輸出一行, m。

輸入示例 輸出示例

3           5

78          83

#includeusing namespace std;  

int main()

while(true)

if(i==j)

return t;

} int main()

printf("%d\n",m);

return 0;

}

搜尋 由淺入深 之一 水題

搜尋很重要,是很難學的演算法,能看懂很簡單,但是要想真正做出題來就比較困難了,那麼,我們現在就水題開始研究搜尋。水題之 time limit 1 sec memory limit 162 mb submit 830 solved 572 submit status discuss windy的生日到...

水題系列 2

水題系列 prev 40 k倍區間 思路 這一題其實不算水題,是一題很巧妙的智商題,要想的到思路,其實題目要求就是要求區間和有幾個能被乙個數整除,但是題目的範圍特別大,兩個for迴圈必超時,所以得用巧方法,先求出字首和,然後將每乙個字首和對需要整除的數取餘,如果有兩個字首和對取餘的結果是一樣的,那麼...

水題系列 5

水題系列1 prev 54 合根植物 想法 一道非常簡單的並查集,完完全全水題,但是也得需要一些並查集的基本理解 include includeusing namespace std mapmm int book 10000100 int n,m,sum,x,y,num 0 int fun int ...