50%的数据满足:1 <= k <= 5, 1 <= ci <= 3

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

【题解】

  本题中ci很小,因此可以直接5维保存可以涂i块的油漆有多少种颜色。然后利用乘法原理进行DP

  

 #include<cstdio>
#include<algorithm>
#define LL long long
#define rg register
#define N 16
#define Mod (1000000007)
using namespace std;
LL f[N][N][N][N][N][];
bool v[N][N][N][N][N][];
int n,cnt[];
inline int read(){
int k=,f=; char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(''<=c&&c<='')k=k*+c-'',c=getchar();
return k*f;
}
LL dfs(int a,int b,int c,int d,int e,int last){
if(v[a][b][c][d][e][last]) return f[a][b][c][d][e][last];
if(a+b+c+d+e==) return ;
LL tmp=;
if(a) tmp+=(a-(last==))*dfs(a-,b,c,d,e,);
if(b) tmp+=(b-(last==))*dfs(a+,b-,c,d,e,);
if(c) tmp+=(c-(last==))*dfs(a,b+,c-,d,e,);
if(d) tmp+=(d-(last==))*dfs(a,b,c+,d-,e,);
if(e) tmp+=e*dfs(a,b,c,d+,e-,);
v[a][b][c][d][e][last]=;
return f[a][b][c][d][e][last]=(tmp%Mod);
}
int main(){
n=read();
for(rg int i=;i<=n;i++){
int x=read();
cnt[x]++;
}
printf("%lld\n",dfs(cnt[],cnt[],cnt[],cnt[],cnt[],));
return ;
}

洛谷 2476 [SCOI2008]着色方案的更多相关文章

  1. BZOJ1079或洛谷2476 [SCOI2008]着色方案

    一道记忆化搜索 BZOJ原题链接 洛谷原题链接 发现对于能涂木块数量一样的颜色在本质上是一样的,所以可以直接压在一个状态,而这题的数据很小,直接暴力开\(6\)维. 定义\(f[a][b][c][d] ...

  2. BZOJ 1079: [SCOI2008]着色方案 记忆化搜索

    1079: [SCOI2008]着色方案 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  3. bzoj1079: [SCOI2008]着色方案

    ci<=5直接想到的就是5维dp了...dp方程YY起来很好玩...写成记忆化搜索比较容易 #include<cstdio> #include<cstring> #inc ...

  4. bzoj 1079: [SCOI2008]着色方案 DP

    1079: [SCOI2008]着色方案 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 803  Solved: 512[Submit][Status ...

  5. 洛谷P2756飞行员配对方案问题 P2055假期的宿舍【二分图匹配】题解+代码

    洛谷 P2756飞行员配对方案问题 P2055假期的宿舍[二分图匹配] 飞行员配对方案问题 题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架 ...

  6. [SCOI2008]着色方案

    1079: [SCOI2008]着色方案 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2228  Solved: 1353[Submit][Stat ...

  7. [SCOI2008] 着色方案[高维dp]

    321. [SCOI2008] 着色方案 ★★★   输入文件:color.in   输出文件:color.out   简单对比时间限制:1 s   内存限制:64 MB 题目背景: 有n个木块排成一 ...

  8. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  9. 洛谷 [BJOI2012]最多的方案

    洛谷 这题是旁边同学介绍的,听他说记忆化搜索可以过... 不过我还是老老实实的想\(dp\)吧- 先看看数据范围,\(n\leq10^{18}\)相当于\(n \leq fib[86]\). 以前打\ ...

随机推荐

  1. Spark 决策树--分类模型

    package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.{D ...

  2. PCB Genesis或Incam 右键导入TGZ 实现方法

    使用Genesis导入TGZ方式很多 的,比如有:写个脚本框选TGZ的的方式实现TGZ导入,将TGZ拖入脚本界面实现TGZ导入, 给Engineering Toolkit窗口句柄注册拖拽事件实现TGZ ...

  3. bzoj 2763: [JLOI2011]飞行路线【分层图+spfa】

    为什么早年的题总是从0开始标号啊--又zz了一次WA 分层图的题只有这一个套路吧,建分层图,然后优化时间是分层跑spfa然后层与层之间单独跑即可 #include<iostream> #i ...

  4. TestNG设置用例循环执行

    曾经做过一需求,需要单个集成测试用例循环执行N次,或许你会说for循环就可以了,这当然是可以的.那有没有逼格更高点的方法,当然也是有的.下面我们就说下使用TestNG注解功能实现用例的循环执行. 1. ...

  5. Spring加载applicationContext.xml实现spring容器管理的单例模式

    package com.etc.pojo; import org.springframework.context.ApplicationContext; import org.springframew ...

  6. Previous operation has not finished; run 'cleanup' if it was interrupted.SVN报错

    原因: 错误的原因是SVN管理的文件夹改名.删除文件太过频繁,导致有操作挂起了. 解决方式: 1.百度sqlite3.exe并下载. 2.将该文件解压到项目根目录下的.svn文件夹中. 3.打开cmd ...

  7. JS在即将离开当前页面(刷新或关闭)时触发事件

    // onbeforeunload 事件在即将离开当前页面(刷新或关闭)时触发 window.onbeforeunload = function () { return /^\#\/ipinfo/.t ...

  8. [ POI 2010 ] Antisymmetry

    \(\\\) \(Description\) 给出一个长度为 \(N\) 的二进制串,定义一个子串是优秀的,当且仅当其正着看,和倒着按位取反后看结果是一样的,求整个串有多少个优秀的子串. \(N\le ...

  9. win7如何设置自动关机

    如果想设置Win7按照自己意愿自动关机,而又不希望下载安装第三方软件,则可以通过以下两个方法来简单实现. 工具/原料 Windows7操作系统环境 方法1:利用cmd命令 1 打开cmd窗口. 方法一 ...

  10. bat 获取当前路径

    @echo offsetlocal EnableDelayedExpansionecho 当前正在运行的批处理文件所在路径:!cd!pause @echo off echo 当前目录是:%cd% pa ...