题目链接:https://cn.vjudge.net/contest/281963#problem/E

题目大意:中文题目

具体思路:这个题脑洞有点大,因为ci的数据量非常小,所以我们可以根据这个来进行操作,我们要找的答案=使用1次的颜色方案数+使用2次的颜色的方案数+使用3次的颜色的方案数+.....。

具体的解释看代码:

 #include<iostream>
#include<stack>
#include<cmath>
#include<stdio.h>
#include<queue>
#include<algorithm>
using namespace std;
# define ll long long
const int mod = 1e9+;
const int maxn = +;
ll vis[];
ll dp[][][][][][];
ll dfs(ll t1,ll t2,ll t3,ll t4,ll t5,ll pre)
{
if(t1+t2+t3+t4+t5==)
return dp[t1][t2][t3][t4][t5][pre]=;
if(dp[t1][t2][t3][t4][t5][pre])
return dp[t1][t2][t3][t4][t5][pre];
ll ans=;
if(t1)
ans+=dfs(t1-,t2,t3,t4,t5,)*(t1-(pre==)),ans%=mod;// 减去为了返回原来的状态而多加的1
if(t2)
ans+=dfs(t1+,t2-,t3,t4,t5,)*(t2-(pre==)),ans%=mod;//t1+1的原因是:当t1存在的时候递归形式t1-1,为了恢复原来的状态,所以是t1+1,。
if(t3)
ans+=dfs(t1,t2+,t3-,t4,t5,)*(t3-(pre==)),ans%=mod;
if(t4)
ans+=dfs(t1,t2,t3+,t4-,t5,)*(t4-(pre==)),ans%=mod;
if(t5)
ans+=dfs(t1,t2,t3,t4+,t5-,)*t5,ans%=mod;
return dp[t1][t2][t3][t4][t5][pre]=ans;
}
int main()
{
int k;
scanf("%d",&k);
for(int i=; i<=k; i++)
{
int tmp;
scanf("%d",&tmp);
vis[tmp]++;
}
ll ans=dfs(vis[],vis[],vis[],vis[],vis[],);
printf("%lld\n",ans);
return ;
}

E - 着色方案 HYSBZ - 1079 (计数DP)的更多相关文章

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

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

  2. 2018.10.20 bzoj1079: [SCOI2008]着色方案(多维dp)

    传送门 dp妙题. f[a][b][c][d][e][last]f[a][b][c][d][e][last]f[a][b][c][d][e][last]表示还剩下aaa个可以用一次的,还剩下bbb个可 ...

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

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

  4. 【BZOJ】1079: [SCOI2008]着色方案(dp+特殊的技巧)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1079 只能想到5^15的做法...........................果然我太弱. 其实 ...

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

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

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

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

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

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

  8. bzoj1079 着色方案 记忆化搜索(dp)

    题目传送门 题目大意: 有k种颜色,每个颜色ci可以涂个格子,要求相邻格子颜色不能一样,求方案数.ci<=5,k<=15. 思路: 题目里最重要的限制条件是相邻格子颜色不能相同,也就是当前 ...

  9. Bzoj 1079 着色方案 题解

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

随机推荐

  1. BZOJ1791[Ioi2008]Island 岛屿 ——基环森林直径和+单调队列优化DP+树形DP

    题目描述 你将要游览一个有N个岛屿的公园.从每一个岛i出发,只建造一座桥.桥的长度以Li表示.公园内总共有N座桥.尽管每座桥由一个岛连到另一个岛,但每座桥均可以双向行走.同时,每一对这样的岛屿,都有一 ...

  2. BZOJ5311 贞鱼(动态规划+wqs二分+决策单调性)

    大胆猜想答案随k变化是凸函数,且有决策单调性即可.去粘了份fread快读板子才过. #include<iostream> #include<cstdio> #include&l ...

  3. java访问权限表

    private(私有的) 默认的(什么都不写) protected(受保护的) public(公共的 ) 同一个类中 yes   yes yes   yes 同一个包中不同类之间 no yes yes ...

  4. 自学Linux Shell4.1-监测程序ps top kill

    点击返回 自学Linux命令行与Shell脚本之路 4.1-监测程序ps top kill 1. PS命令 linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的 ...

  5. 自学Linux Shell7.1-linux用户账户和组

    点击返回 自学Linux命令行与Shell脚本之路 7.1-linux用户账户和组 linux安全系统的核心是用户账户.每个能进入linux系统的用户都会被分配唯一的用户账户,用户对系统中各对象的访问 ...

  6. 自学Python3.2-函数分类(内置函数)

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  7. HTM L百度地图API 自定义工具地图实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. emwin之LISTWHEEL控件之LISTWHEEL_SetPos函数的使用

    @2018-09-05 [小记] LISTWHEEL控件的LISTWHEEL_SetPos函数的使用注意事项: 该函数不能在创建窗口的WM_INIT_DIALOG分支下作为修改LISTWHEEL控件属 ...

  9. Android 友盟SDK 终极解决报错:SocialSDK_QQZone_2.jar contains native libraries that

    转自:http://bbs.umeng.com/thread-6552-1-2.html 报错信息:The library `SocialSDK_QQZone_2.jar` contains nati ...

  10. 洛谷P4043 支线剧情

    题意:给定DAG,通过每条边需要时间. 从某号点回到1号点不需要时间. 从1号点出发,求最少要多久才能走完所有边. 解: 有源汇有上下界最小费用可行流. 直接连边,费用为时间,下界为1,无上界. 每个 ...