P4574 CQOI2013 二進位制A B

2022-04-30 11:12:09 字數 720 閱讀 8186

p4574 [cqoi2013]二進位制a+b

數字dp

設f[ i ][ a ][ b ][ c ][ 0/1 ]表示在第 n-i 位,a、b、c各貢獻了a、b、c個1,是否需要進製的情況下,c的最小值

然後對於8種情況列舉

#include#include

#include

using

namespace

std;

typedef

long

long

ll;template

inline t min(t &a,t &b)

template

inline int find(t a) //計算位數

template

inline int cont(t x) //計算二進位制下1的個數

ll f[

33][33][33][33][2

],ans,inf;

intmain()

for(int i=0;i<=mxd;++i) ans=min(ans,f[i][a][b][c][0

]);

if(ans==inf) printf("-1"

);

else printf("

%lld

",ans);

return0;

}

P4574 CQOI2013 二進位制A B

就是數字 dp,用 f now,i,j,k,cf 表示第 now 位,a,b,c 的一的個數分別用了 i,j,k 個,cf 表示有沒有進製 然後注意這裡應該用順推,而不是那種記憶化搜尋的形式,通過樣例就能知道如果寫成記憶化搜尋,某乙個 f 的值可能被並不是最優的乙個 c 來更新了,又因為是記憶化,所...

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...