bzoj 1079: [SCOI2008]着色方案
思路:按个数分类dp
1 #include<bits/stdc++.h> 2 #define LL long long 3 #define fi first 4 #define se second 5 #define mk make_pair 6 #define pii pair<int,int> 7 #define piii pair<int, pair<int,int> > 8 9 using namespace std; 10 11 const int N = 16; 12 const int M = 10 + 7; 13 const int inf = 0x3f3f3f3f; 14 const LL INF = 0x3f3f3f3f3f3f3f3f; 15 const int mod = 1e9 + 7; 16 17 int n, cur, sum, num[6]; 18 int dp[2][6][N][N][N][N][N]; 19 20 void add(int &a, int b) { 21 a += b; if(a >= mod) a-= mod; 22 } 23 int main() { 24 scanf("%d", &n); 25 for(int i = 1; i <= n; i++) { 26 int x; scanf("%d", &x); 27 num[x]++; 28 sum += x; 29 } 30 dp[cur][0][num[1]][num[2]][num[3]][num[4]][num[5]] = 1; 31 32 for(int i = 0; i < sum; i++) { 33 cur ^= 1; 34 for(int j = 0; j <= 5; j++) 35 for(int a = 0; a <= n; a++) 36 for(int b = 0; b <= n; b++) 37 for(int c = 0; c <= n; c++) 38 for(int d = 0; d <= n; d++) 39 for(int e = 0; e <= n; e++) 40 dp[cur][j][a][b][c][d][e] = 0; 41 42 for(int j = 0; j <= 5; j++) { 43 for(int a = 0; a <= n; a++) { 44 for(int b = 0; b <= n; b++) { 45 for(int c = 0; c <= n; c++) { 46 for(int d = 0; d <= n; d++) { 47 for(int e = 0; e <= n; e++) { 48 if(!dp[cur ^ 1][j][a][b][c][d][e]) continue; 49 if(e) { 50 LL cnt = e - (5 == j); 51 add(dp[cur][4][a][b][c][d + 1][e - 1], 1ll * dp[cur ^ 1][j][a][b][c][d][e] * cnt % mod); 52 } 53 54 if(d) { 55 LL cnt = d - (4 == j); 56 add(dp[cur][3][a][b][c + 1][d - 1][e], 1ll * dp[cur ^ 1][j][a][b][c][d][e] * cnt % mod); 57 } 58 59 if(c) { 60 LL cnt = c - (3 == j); 61 add(dp[cur][2][a][b + 1][c - 1][d][e], 1ll * dp[cur ^ 1][j][a][b][c][d][e] * cnt % mod); 62 } 63 64 if(b) { 65 LL cnt = b - (2 == j); 66 add(dp[cur][1][a + 1][b - 1][c][d][e], 1ll * dp[cur ^ 1][j][a][b][c][d][e] * cnt % mod); 67 } 68 69 if(a) { 70 LL cnt = a - (1 == j); 71 add(dp[cur][0][a - 1][b][c][d][e], 1ll * dp[cur ^ 1][j][a][b][c][d][e] * cnt % mod); 72 } 73 } 74 } 75 } 76 } 77 } 78 } 79 } 80 int ans = dp[cur][0][0][0][0][0][0]; 81 printf("%d\n", ans); 82 return 0; 83 } 84 /* 85 */
转载于:https://www.cnblogs.com/CJLHY/p/9105887.html
bzoj 1079: [SCOI2008]着色方案相关推荐
- bzoj 1079 [SCOI2008]着色方案
bzoj 1079 [SCOI2008]着色方案 Description 有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块.所有油漆刚好足够涂满所 ...
- BZOJ 1079: [SCOI2008]着色方案 记忆化搜索
1079: [SCOI2008]着色方案 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- bzoj1079: [SCOI2008]着色方案(DP)
1079: [SCOI2008]着色方案 题目:传送门 题解: DP刚神多年前讲过的一道神题. 二话不说,上来就是一个六维数组:F[i][a][b][c][d][e]//表示上一次涂的颜色是还剩下i次 ...
- [BZOJ1079][SCOI2008]着色方案 dp
1079: [SCOI2008]着色方案 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2368 Solved: 1428 [Submit][St ...
- bzoj1079: [SCOI2008]着色方案
1079: [SCOI2008]着色方案 Time Limit: 10 Sec Memory Limit: 162 MB Description 有n个木块排成一行,从左到右依次编号为1~n.你有k ...
- BZOJ1079 [SCOI2008]着色方案 记忆化搜索
1079: [SCOI2008]着色方案 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2826 Solved: 1682 [Submit][St ...
- bzoj1079 [SCOI2008]着色方案
Description 有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块.所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n.相邻两个木 ...
- [SCOI2008]着色方案
这题也是看了别人题解也才会做的. 题解: 本题用的记忆优化搜索,题目说了给的颜色可以恰好图够所有木块. 题目给了能涂几块木块的颜色一共有几种.因为我们不可以连续图,所以我们把他分开来涂色. 用dp[a ...
- [SCOI2008]着色方案(DP)
题目链接 思想 显然我们后面的决策是跟前一步相关的,因此我们可以考虑DP,可以用一个15维的数组来进行转移,但是这样显然回mle,所以我们考虑如何压缩状态,由于1<=Ci<=51 < ...
最新文章
- android PhotoView的用法
- ??? error using == times matlab,matlab错误 Error using 怎么办?
- SylixOS DSP upgrade命令解析
- 8086汇编4位bcd码_逆向工程——汇编基础[一]
- Deep Belief Network简介——本质上是在做逐层无监督学习,每次学习一层网络结构再逐步加深网络...
- 【整理】SAP货币汇率转换
- 类加载器源码、双亲委派、自定义类加载器详解
- 3.vector实现字符串类
- 无线传感网1-简单介绍
- ExtJS 4无限制滚动条的Grid
- android 如何正确使用 泛型 和 多参数 “偷懒”
- linux安装mysql phpmyadmin_如何在Linux下安装和配置PHPmyadmin?
- 利用tcp协议实现大文件传输(socket)
- [附源码]PHP计算机毕业设计小斌美食网站(程序+LW)
- 计算机专业班级网站,班级网站毕业论文.doc
- 【知识贴】战争中的数学应用
- java实现移位密码的加密
- 让html前端的数字每天自己增加,前端开发神器Emmet,让你的代码输入效率瞬间翻倍...
- Ubuntu 12.04 常用三种输入法及键盘错乱的调整
- linux信号量对mysql_MySQL 信号量semaphore 和 innodb_adaptive_hash_index
热门文章
- 修改MySQL自动递增值
- ICCV 2019 | 华科提出对称限制的校正网络,显著改进场景文本识别
- oracle索引未使用,oracle - 未使用主键索引 - SO中文参考 - www.soinside.com
- v380云存储如何查询_使用 JuiceFS 在云上优化 Kylin 的存储性能
- 我们为什么要学习3D建模?
- Java至尊红颜_智能手机跨时代大作 摩托MPx220登场
- 支持向量机——深度AI科普团队
- 上海事职业培训软件测试高级,《软件测试人员(Java)(4级)》人力资源和社会保障部教材办公室、中国就业培训技术指导中心上海分中心、上海市职业培训研究发展中心 编_孔网...
- c语言单链表超市出库,c语言-单链表(二)
- Base64 + 变为 空格 问题分析