★★★ 輸入檔案:color.in
輸出檔案:color.out
簡單對比
時間限制:1 s 記憶體限制:64 mb
題目背景:
有n個木塊排成一行,從左到右依次編號為1~n。你有k種顏色的油漆,其中第i 種顏色的油漆足夠塗ci 個木塊。所有油漆剛好足夠塗滿所有木塊,即 c1+c2+...+ck=n。相鄰兩個木塊塗相同色顯得很難看,所以你希望統計任意兩個相鄰木塊顏色不同的著色方案。
【輸入】
第一行為乙個正整數k,第二行包含k個整數c1, c2, ... , ck。
【輸出】
輸出乙個整數,即方案總數模1,000,000,007的結果。
【樣例】
輸入輸出
31 2 3105
2 2 2 2 2
39480
101 1 2 2 3 3 4 4 5 5
85937576
【資料規模】
50%的資料滿足:1 <= k <= 5, 1 <= ci <= 3
100%的資料滿足:1 <= k <= 15, 1 <= ci <= 5
#include#includeusing
namespace
std;
typedef
long
long
ll;const ll mod=1e9+7
;const
int n=16;int n,s[6
];ll f[n][n][n][n][n][6];
ll dfs(
int a,int b,int c,int d,int e,int
x)int
main()
SCOI2008 著色方案
time limit 10 sec memory limit 162 mb submit 2228 solved 1353 submit status discuss 有n個木塊排成一行,從左到右依次編號為1 n。你有k種顏色的油漆,其中第i種顏色的油漆足夠塗ci個木塊。所有油漆剛好足夠塗滿所有木塊...
SCOI2008 著色方案
給你 k 種顏料,每種顏料有 c 份,每份顏料塗一塊木板,求恰好用完所有顏料且相鄰兩木板顏色不同的塗色方案種數.1 leq k leq 15 1 leq c leq 5 由於此題資料較小,考慮dp套組合數學,但重複dp運算量極大,考慮記憶化搜尋優化.又因為每種顏料至多5份,模擬烏龜棋,我們可以開乙個...
SCOI2008 著色方案 (狀態壓縮)
題目鏈結 description 有n個木塊排成一行,從左到右依次編號為1 n。你有k種顏色的油漆,其中第i種顏色的油漆足夠塗ci個木塊。所有油漆剛好足夠塗滿所有木塊,即c1 c2 ck n。相鄰兩個木塊塗相同色顯得很難看,所以你希望統計任意兩 個相鄰木塊顏色不同的著色方案。input 第一行為乙個...