就是數字 dp,用 \(f(now,i,j,k,cf)\) 表示第 \(now\) 位,\(a,b,c\) 的一的個數分別用了 \(i,j,k\) 個,\(cf\) 表示有沒有進製
然後注意這裡應該用順推,而不是那種記憶化搜尋的形式,通過樣例就能知道如果寫成記憶化搜尋,某乙個 \(f\) 的值可能被並不是最優的乙個 \(c\) 來更新了,又因為是記憶化,所以就把這個值當成了最終結果,出現錯誤
好像還有一種更妙的構造方式,但並不會
#include#include#include#include#include#include#include#define reg register
#define en puts("")
inline long long read()
while(c>='0'&&c<='9')
return y?x:-x;
}#define inf 0x3f3f3f3f3f3f3f3f
long long f[33][33][33][33][2];
int numa,numb,numc,nummax;
inline void min(long long &a,long long b)
int main()
if(f[now][i][j][k][1]!=inf)
} }printf("%lld",f[nummax][numa][numb][numc][0]==inf?-1:f[nummax][numa][numb][numc][0]);
return 0;
}
P4574 CQOI2013 二進位制A B
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...
二進位制 二進位制起源
現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...
判斷二進位製半整數(二進位制)
10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...