數數(高維DP)

2022-03-03 18:08:04 字數 812 閱讀 4813

fadbec 很善於數數,⽐如他會數將 a 個紅球,b 個黃球,c 個藍球,d 個綠球排成⼀列,任意相鄰不同⾊的數⽬。 現在 r 君不知道 fadbec 數的對不對,想讓你也算⼀算。 由於數字⽐較⼤,所以請輸出除以 109 + 7 的餘數。

⼀⾏四個正整數 a,b,c,d。

輸出包含⼀個整數,表⽰答案。

1 1 1 2

對於前 30% 的資料,1 ≤ a,b,c,d ≤ 3。 對於前 100% 的資料,1 ≤ a,b,c,d ≤ 30。

這個題純用組合數學是比較麻煩的,因為插入之後或許原先同種顏色相鄰的情況中間插入新顏色,那種情況就合法了,所以不好推。

但是看到這個題的資料範圍我們可以想到高維dpqwq。。。。

dp的話每次放入的話可以乙個乙個地考慮,所以比較方便。。。

**如下:

#include #include #include #include using namespace std;

typedef long long ll;

int a,b,c,d;

const ll mod = 1e9+7;

ll dp[35][35][35][35][4];

int sum(int a,int b,int c,int d,int k)

return sum%mod;

}int main()

if(n2>0)

if(n3>0)

if(n4>0)}}

} }ll ans = sum(a,b,c,d,-1);

cout

}

鯧數 數字dp

設從低到高第 len 1le n 1 位的數字為 x x,考慮 x x 與後面 len len 位組成逆序對的貢獻,先考慮 x 1x 1 時的貢獻,為 len 10l enle n 10 len,其中每個數字出現的次數都相同,再考慮 x 0,9 x 0 9 貢獻變為 len 10l en x 10 ...

SCOI2008 著色方案 高維dp

輸入檔案 color.in輸出檔案 color.out簡單對比 時間限制 1 s 記憶體限制 64 mb 題目背景 有n個木塊排成一行,從左到右依次編號為1 n。你有k種顏色的油漆,其中第i 種顏色的油漆足夠塗ci 個木塊。所有油漆剛好足夠塗滿所有木塊,即 c1 c2 ck n。相鄰兩個木塊塗相同色...

D windy數(數字dp模板)

windy定義了一種windy數。不含前導零且相鄰兩個數字之差至少為2的正整數被稱為windy數。windy想知道,在a和b之間,包括a和b,總共有多少個windy數?input 包含兩個整數,a b。output 乙個整數 sample input 輸入樣例一 1 10 輸入樣例二 25 50 s...