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...