首页 > [SCOI2008]着色方案
头像 客户端劝退第4人
发表于 2020-07-19 15:58:05
因为这类问题都需要从前一步来推后一步,所以大概率是DP类问题 首先我们需要确定状态,如果把每种颜色都当成一维来记录的话,最大是 维肯定是不可取的,所以就要考虑别的状态 因为每种颜色 ,我们可以把每种颜色剩余能涂的个数看成一个等价类 来确定每种状态 其中, 表示在所有颜色中剩余能涂的个数为 展开全文
头像 zzugzx
发表于 2020-07-17 12:33:15
题目链接 题意:题解: AC代码 /* Author : zzugzx Lang : C++ Blog : blog.csdn.net/qq_43756519 */ #include<bits/stdc++.h> using namespace std; #de 展开全文
头像 hnust_yangyanjun
发表于 2020-07-26 20:49:46
题意:给你n种染料,每种染料可以使用Ci次,同一种染料不能连续使用,求用完所有染料的方案数为多少种? 思路:纯动态规划,我们用dp[a][b][c][d][e][last]描述一个还可以使用一次的染料为a种,还可以使用两次的染料为b种,.....,可以使用五次的染料为f种时上一次染色为使用还可以使用 展开全文
头像 blowhail
发表于 2020-07-23 16:45:39
对于每种油漆,如果它能涂的数量相同,那对结果贡献就是相同的,所以,用dp[a][b][c][d][e][las],a,b,c,d,e表示还能涂1,2,3,4,5个木块,las表示上一次涂的是哪一种剩余量的油漆。 假如上一次涂的是剩余量为2的油漆如果当前 a 还有剩余,那么最终结果应该加上: ( a 展开全文
头像 luo想要个气球
发表于 2020-07-19 23:26:44
题意: 思路: #include <cstdio> #include <cstring> using namespace std; typedef long long ll; const int N = 16; const ll mod = 1e9 + 7; int f 展开全文
头像 sunsetcolors
发表于 2020-07-17 16:17:24
[SCOI2008]着色方案 题目地址: https://ac.nowcoder.com/acm/problem/20265 基本思路: 必须吐槽一下,怎么题目又没有写数据范围QAQ,这题没数据范围写不了啊。 考虑,但是如果我们用每种颜色的油漆作为维度显然不太行,因此我们关注,考虑到每一种 展开全文
头像 lifehappy
发表于 2020-07-17 13:20:13
题目链接 思想 显然我们后面的决策是跟前一步相关的,因此我们可以考虑DP,可以用一个15维的数组来进行转移,但是这样显然回mle,所以我们考虑如何压缩状态,由于,所以我们可以有dp数组: ,表示可以涂1块木块的有多少种颜色,以此类推,表示上一次用的是可以涂个木块的颜色。 接下来就是考虑dp方程的转移 展开全文
头像 sunrise__sunrise
发表于 2020-07-17 19:58:06
题目描述有n个木块排成一行,从左到右依次编号为1~n。你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块。 所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n。相邻两个木块涂相同色显得很难看,所以你希望统计任意两个相邻木块颜色不同的着色方案。输入描述:第一行为一个正整数k,第二行包含 展开全文
头像 Severus.
发表于 2020-07-20 16:52:14
题目描述 有n个木块排成一行,从左到右依次编号为1~n。你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块。 所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n。相邻两个木块涂相同色显得很难看,所以你希望统计任意两个相邻木块颜色不同的着色方案。 输入描述: 第一行为一个正整数k 展开全文
头像 Acapplella
发表于 2020-07-21 12:15:37
代码如下: #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<cstdlib> #define mod 1000000007 us 展开全文