精華區beta Marginalman 關於我們 聯絡資訊
題目: 讓數字變多 變成n個 全部&一起 要==x 會出現的最大的數字是那個 思路: 不能刪除原本就有的1 不然&一起會變少 要有n個數字 就是要在x的0的位子慢慢放進去 直到有n個數字 然後 第n個數字 在所有0的地方就會直接變成那個數字的bit _0_000__0___0 這是一個數字 _的地方是原本的1 如果是第三個就會是 _1_100__0___0 有點難講 0.0 ```cpp class Solution { public: long long minEnd(int n, int x) { long long two = 1; long long res = x; n--; while(n>0) { while(two&res) { two <<= 1; } if(n&1)res |= two; n >>= 1; two <<= 1; // cout << res << endl; } return res; } }; ``` -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 134.208.249.60 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1731140153.A.ECB.html
mrsonic: 刷爽沒 11/09 16:19