1079: [SCOI2008]着色方案
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 2228 Solved: 1353
[Submit][Status][Discuss]
Description
有n个木块排成一行,从左到右依次编号为1~n。你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块。
所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n。相邻两个木块涂相同色显得很难看,所以你希望统计任意两
个相邻木块颜色不同的着色方案。
Input
第一行为一个正整数k,第二行包含k个整数c1, c2, ... , ck。
Output
输出一个整数,即方案总数模1,000,000,007的结果。
Sample Input
3
1 2 3
1 2 3
Sample Output
10
HINT
100%的数据满足:1 <= k <= 15, 1 <= ci <= 5
Source
一道神奇的搜索
一看数据范围是挺小的,大概正解也要往这边靠了。。
可以很容易想到并快速打出一个暴力dfs,只要维护能不能选和避免上一次相同就可以了
期望得分50分
我们发现对于所有颜色来说,如果不考虑相同条件,那是什么颜色是无所谓的
对于避免和上一个一样,我们可以运用记忆化来快速筛除重复状态
然后果断打一个爆搜就好了啊!