傳送門:
preview:
bitstream:a flow of data in binary form.
in bit-wise expression:用位表示。
her face was a cold blank mask. 她裝出一副冰冷冷毫無表情的樣子。
perform a bit-wise and operation.
in bit-wise expression, mask is a common term.
輸入3個數 n,l,u,問你能否找出乙個數m,在滿足 l <= m <= u的情況下。使得m|n最大,如果有多個數都能使得m|n最大,那麼輸出最小的那個數。
分析:這題用貪心來寫。。我們知道或操作。只要有1進行或操作後會變成1。。
所以在進行貪心的時候。我們只要考慮n為1的位置盡量用0去填,n為0的位置盡量用1去填。
不過在這之前要進行乙個判斷。就是如果當前一位如果填上1,會超過上界r,則只能填0.如果當前一位填上了0,會使得即使後面每位都填上1也到不了下界l,則只能填1.
然後由於n最大為2^32。。本來想用位運算的結果悲劇了。。最後自己寫了個快速冪去把乙個數拆解成01的二進位制數。
#includeusing namespace std;
typedef long long ll;
ll n,l,r;
int vis[33];
ll num;
ll mi(ll a,ll b) //快速冪
return ans;
} int main()
else vis[i]=0;
} num=0;
for(int i=31;i>=0;i--)
{
if(mi(2,i)+num>r) continue; //如果填1超過上界
else if(mi(2,i)-1+numresorce:
漲薪 貪心 快速冪
link description 一共有n個數,第i個數的值為a ia i ai 可以進行m輪操作 選擇其中x個數乘3,其中y個數乘2,對於每個a ia i ai 在每一輪不可以被選擇兩次。如果乙個數連續兩輪沒被選擇,就直接淘汰 求最終剩下的數的總和最大為多少,答案模1e9 7 解題思路 貪心 快速...
貪心小總結
這一周學習了貪心演算法。總的來說,貪心演算法在聽的時候感覺並沒有這麼的難,總體思路就是在每一步取最優解,之後總的就取到最優解。但在寫的時候感覺並沒有這麼簡單,因為在貪心演算法來說,思路首先是是最重要的,之後才會考慮優化 本週貪心演算法的第一題,我寫了三天之後才有大概的方向。第一次的的總思路用到了棧,...
快速冪學習總結
a b c a c b c 上面的是乙個公式,接下來將介紹另乙個公式,在介紹公式之前,先來看乙個有關二進位制的東西,那10進製數 11 來說 把11轉為二進位制1011,也就是2 3 2 1 2 0 在介紹乙個初中的公式,a a1 a2 a3 an a a1 a a2 a a3 a an 好有了這些...