[SCOI2008]着色方案

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

Sample Output

10

HINT

 100%的数据满足:1 <= k <= 15, 1 <= ci <= 5

Source

 一道神奇的搜索

 一看数据范围是挺小的,大概正解也要往这边靠了。。

     可以很容易想到并快速打出一个暴力dfs,只要维护能不能选和避免上一次相同就可以了

期望得分50分

  我们发现对于所有颜色来说,如果不考虑相同条件,那是什么颜色是无所谓的

对于避免和上一个一样,我们可以运用记忆化来快速筛除重复状态

然后果断打一个爆搜就好了啊!

posted @ 2017-10-15 20:41  Hzoi_Maple  阅读(132)  评论(0编辑  收藏  举报