題解 UVA11361 遞推

2021-08-24 23:43:23 字數 528 閱讀 7109

題目鏈結

設f(d,m1,m2)表示共d個數字,其中各數字之和除以k的餘數為m1,這些數字組成的整數除以k的餘數為m2的整數的個數,則每個模板對應的解的個數都等於某個f(d,m1,m2)

遞推式f(d,m1,m2)=sum

#include

#include

typedef long long ll;

int a,b,k;

int dp[12][112][112];

int c[12];

ll detal(int

x) int ans1,ans2;

ans1=ans2=0;

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

ll ans=dp[10][0][0];

if((ans1+c[10])%k==0&&(ans2*10+c[10])%k==0)ans++;

return ans;

}int main()

return

0;}

Uva11361 字首 分區間

這題用的是書上給的思路,不過,對於這種型別的題,做的太少,於是打算好好謝謝。不過,花了乙個晚上,參考別人的 寫了遍。這種型別的題一般都會用到字首,設f n 表示從1到n滿足條件的數的個數。但是直接列舉,複雜度為o n 但是由於範圍最大能達到2 31左右,所以不能暴搞。這裡將乙個數分成幾部分來算 f ...

題解 UVA11375 遞推

題目鏈結 參考了大佬部落格思路摘抄如下 d i 記錄用i跟火柴可以組成多少種數字,更新式是d i c j d i c j 就是組成數字j要用的火柴數。但是不能以0開頭,最後當火柴數大於等於6的時候就可以在總答案上 1,表示可以構成乙個單獨的0 因為之前沒有0開頭的,所以要 1補回來 最後答案就是f ...

uva11375火柴遞推之多狀態轉移遞推

分析 把 已經使用過的火柴數i 看成狀態,可以得到乙個圖。從前往後每新增乙個數字x,就從狀態i轉移到i c x 其中c x 代表數字x需要的火柴數。當i 0的時候不允許 使用數字0 最後當n 6時,給答案單獨加上1,代表整數0 令d i 為從結點0到結點i的路徑條數,則答案f n d 1 d 2 d...