项目编号:bzoj-1079

项目等级:Safe

项目描述:

  戳这里

特殊收容措施:

  DP。普通的状压状态数515,显然TLE+MLE,我们考虑把底数和幂换一换,压成155的状态数。

  故状态设计为:f[last][rest1][rest2][rest3][rest4][rest5],表示上一个颜色为last,剩余k个方块的颜色种类数为restk的涂色方案数。

  然后DP或记忆化即可。复杂度o(5k5)。

附录:

 #include <bits/stdc++.h>
#define range(i,c,o) for(register int i=(c);i<(o);++i)
#define dange(i,c,o) for(register int i=(c);i>(o);--i)
using namespace std; static const int AwD=; static int n;
int r[],f[][][][][][]; int DP(const int&las)
{
if(!r[]&&!r[]&&!r[]&&!r[]&&!r[]) return ;
if(~f[las][r[]][r[]][r[]][r[]][r[]])
{
return f[las][r[]][r[]][r[]][r[]][r[]];
}
int ret=;
range(col,,) if(r[col])
{
--r[col]; if(col) ++r[col-];
if(int cnt=r[col]+(col+!=las))
{
(ret+=1ll*DP(col)*cnt%AwD)%=AwD;
}
++r[col]; if(col) --r[col-];
}
return f[las][r[]][r[]][r[]][r[]][r[]]=ret;
} int main()
{
scanf("%d",&n),memset(f,-,sizeof f);
range(i,,n) {int c; scanf("%d",&c),++r[c-];}
return printf("%d\n",DP()),;
}

SCP-bzoj-1079的更多相关文章

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

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

  2. BZOJ 1079 [SCOI2008]着色方案

    http://www.lydsy.com/JudgeOnline/problem.php?id=1079 思路:如果把每种油漆看成一种状态,O(5^15)不行 DP[a][b][c][d][e][f] ...

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

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

  4. BZOJ 1079: [SCOI2008]着色方案(巧妙的dp)

    BZOJ 1079: [SCOI2008]着色方案(巧妙的dp) 题意:有\(n\)个木块排成一行,从左到右依次编号为\(1\)~\(n\).你有\(k\)种颜色的油漆,其中第\(i\)种颜色的油漆足 ...

  5. [BZOJ 1079][SCOI 2008]着色方案

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

  6. BZOJ 1079 着色方案(DP)

    如果把当前格子涂什么颜色当做转移的话,状态则是每个格子的颜色数还剩多少,以及上一步用了什么颜色,这样的状态量显然是5^15.不可取. 如果把当前格子涂颜色数还剩几个的颜色作为转移的话,状态则是每个格子 ...

  7. bzoj 1079 DP

    比较容易看出来是DP,但是如果我们记录每一种颜色还剩多少种的话,消耗的转移的时间复杂度5^15,但是我们考虑到每一种颜色,如果数量相同的话,其实是等效的,所以我们用w[a][b][c][d][e][l ...

  8. AC日记——[SCOI2008] 着色方案 bzoj 1079

    1079 思路: dp: 我们如果dp方程为15维,每维记录颜色还有多少种: 不仅tle,mle,它还re: 所以,我们压缩一下dp方程: 方程有6维,第i维记录有多少种颜色还剩下i次: 最后还要记录 ...

  9. Bzoj 1079 着色方案 题解

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

  10. bzoj 1079 着色方案

    题目: 有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其 中第i 种颜色的油漆足够涂ci 个木块.所有油漆刚好足够涂满所有木块,即c1+c2+-+ck=n.相邻两个木块涂相同色显得 ...

随机推荐

  1. 「树的直径」BFS方法证明

    选定任意一个点u,从u开始BFS求出距离u最大的点s,再从s点出发BFS到距离s最大的点t,则dis(s,t)即为树的直径 证明 其实只要找到了树的直径的一个端点,再BFS找到最远点就一定是直径的另一 ...

  2. <三剑客> 老大:awk命令用法

    awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一 个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是lin ...

  3. v-show与v-if的区别

    v-show有dom节点像display:none,而v-if隐藏的则没有dom节点.两个共同点都可以显隐

  4. nginx启动、关闭、重启及常用的命令

    nginx常用命令 启动:cd /usr/local/nginx/sbin./nginxnginx服务启动后默认的进程号会放在/usr/local/nginx/logs/nginx.pid文件cat ...

  5. Castle动态代理拦截

    比如现在有一个方法,进行积分奖励 PointAdd 在不改变原来方法的基础上,增加积分奖励的日志 using Castle.DynamicProxy; public class AuditTraceI ...

  6. Series序列

    import pandas as pd '''Series序列:1.序列 的声明,指定index列标签2.查看列索引(index)和元素 (values)3.选择内部元素4.为元素赋值5.用Numpy ...

  7. go 发送http请求

    普通的get请求 package main import ( "io/ioutil" "fmt" "net/http" ) func mai ...

  8. POJ 3020:Antenna Placement(无向二分图的最小路径覆盖)

    Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6334   Accepted: 3125 ...

  9. link address

    http://en.wikipedia.org/wiki/Software_design http://www.codeproject.com/Articles/70061/Architecture- ...

  10. Java script-1

    什么是JavaScript? JavaScript是一种直译式脚本语言,一种轻量级的脚本语言. 什么是脚本语言? Script language指的是它不具备开发操作系统的能力,而是只用来编写控制其他 ...