求範圍內 l,r , 內二進位制的零比一多的數

2022-05-01 11:36:11 字數 881 閱讀 9742

#include#include

#include

#include

#include

#include

using

namespace

std;

int dp[37][73],a[37

];inline

intread()

while(isdigit(ch))

return ans*f;

}int dfs(int wi,int cha,bool lim,bool fir) //

列舉到哪一位,sum0-sum1,限制,是否有前導0

else

ans+=dfs(wi-1,cha-1,lim&&a[wi]==0

,fir);

if(o>=1

) ans+=dfs(wi-1,cha+1,lim&&a[wi]==1,0); //

a[wi]==1/0

if(!lim&&!fir)

dp[wi][cha]=ans;

return

ans;

}int sol(int

x)

for(int i=0;i<=w;i++)

ans+=dfs(w,i+32,1,1

);

return

ans;

}int

main()

數字dp,dp[i][j]表示考慮到第i位(二進位制位),剩下的位中0的個數與1的個數的差為j的數的個數。

j可能為負,需要統一加上乙個數(32吧)

這道題需要考慮前導0,因為如果前面都是0的話,後面的0就不能算在裡面

求乙個範圍內的素數

學演算法時候,求素數總是一道逃不掉的練習題。好久沒寫演算法相關的練習了,學習了python 就拿它來練一下手吧。在求素數之前,首先我們了解一下 什麼是素數。按維基百科的說法是 素數指在大於1的自然數中,除了1和此整數自身外,無法被其他自然數整除的數 也可定義為只有1和本身兩個因數的數 因此我們可以總...

二進位制的前導的零

題目內容 計算機內部用二進位制來表達所有的值。乙個十進位制的數字,比如18,在乙個32位的計算機內部被表達為00000000000000000000000000011000。可以看到,從左邊數過來,在第乙個1之前,有27個0。我們把這些0稱作前導的零。現在,你的任務是寫乙個程式,輸入乙個整數,輸出在...

二進位制的前導的零

二進位制的前導的零 題目內容 計算機內部用二進位制來表達所有的值。乙個十進位制的數字,比如18,在乙個32位的計算機內部被表達為00000000000000000000000000011000。可以看到,從左邊數過來,在第乙個1之前,有27個0。我們把這些0稱作前導的零。現在,你的任務是寫乙個程式,...