题目描述 CE数码公司开发了一种名为自动涂色机(APM)的产品.它能用预定的颜色给一块由不同尺寸且互不覆盖的矩形构成的平板涂色. 为了涂色,APM需要使用一组刷子.每个刷子涂一种不同的颜色C.APM拿起一把有颜色C的刷子,并给所有颜色为C且符合下面限制的矩形涂色: 为了避免颜料渗漏使颜色混合,一个矩形只能在所有紧靠它上方的矩形涂色后,才能涂色.例如图中矩形F必须在C和D涂色后才能涂色.注意,每一个矩形必须立刻涂满,不能只涂一部分. 写一个程序求一个使APM拿起刷子次数最少的涂色方案.注意,如果一…
思路 看到n<16 整个坐标<100 肯定想到暴力啊 蒟蒻来一发最简单易懂的题解(因为不会DP哈 首先我们用map数组来存坐标图 注意前面的坐标需要加1 因为输入的是坐标 而我们需要的是格子(后面同理) 随后一个结构体存下坐标和颜色 还有判断是否涂过 开始搜索时只要从最顶上的几个开始搜索 搜索时有两种情况 当颜色一样时 就不用多算拿笔数 当颜色不一样时 就要算拿笔数 加上个最优性剪枝可以跑得飞快 33ms 吐槽:这数据也太水了 本蒟蒻一开始判断写反了还有75分的说 代码 #include<…
P1283 平板涂色 dfs 记忆化搜索 将矩阵转化为图求解,然后我们发现这是个DAG,于是就可以愉快地跑搜索了. 进行dfs时,我们可以用类似拓扑排序的方法.每次将上面所有矩形都被刷过(入度in[ i ]==0)的满足条件的矩形用h数组打个标记 用incol数组表示目前h数组中有几种颜色,然后枚举可转移状态进行dfs 发现数据n<16,于是我们可以将状态用二进制存起来(0/1表示是否已被刷)进行记忆化搜索. #include<iostream> #include<cstdio&g…
废话不多说,直接上题:  P4170 [CQOI2007]涂色 题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续的木版涂成一个给定的颜色,后涂的颜色覆盖先涂的颜色.例如第一次把木版涂成RRRRR,第二次涂成RGGGR,第三次涂成RGBGR,达到目标. 用尽量少的涂色次数达到目标. 输入格式 输入仅一行,包含一个长度为n的字符串,即涂色目标.字符串中的每个字符都…
题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续的木版涂成一个给定的颜色,后涂的颜色覆盖先涂的颜色.例如第一次把木版涂成RRRRR,第二次涂成RGGGR,第三次涂成RGBGR,达到目标. 用尽量少的涂色次数达到目标. 输入输出格式 输入格式: 输入仅一行,包含一个长度为n的字符串,即涂色目标.字符串中的每个字符都是一个大写字母,不同的字母代表不同颜色,相同的字…
废话: 这个题我第一眼看就是贪心呐, 可能是我之前那做过一道类似的题这俩题都是关于染色的 现在由于我帅气无比的学长的指导, 我已经豁然开朗, 这题贪心不对啊, 当时感觉自己好厉害贪心都能想出来 差点就觉得自己感动中国了 现在感觉自己仿佛是个zz 但是50分的话, 还是比较可观的(我在瞎说不要信 正文: 区间DP, 枚举区间 ,分为两个情况讨论 第一种情况:你现在枚举的这个区间[i, j], 两边的颜色是一样的那么就从[i + 1. j]和[i, j - 1]里面选择较小的那一个 第二种情况:就是…
题意 题目链接 Sol 震惊,某知名竞赛网站竟照搬省选原题! 裸的区间dp,\(f[l][r]\)表示干掉\([l, r]\)的最小花费,昨天写的时候比较困于是就把能想到的转移都写了.. // luogu-judger-enable-o2 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define Pair pair<int, int> #define MP(x, y) make_pair(x, y) #define fi f…
P1283 平板涂色 数据范围也太小了qwq..适合本萌新暴搜 小小的剪枝: 1.用pre预处理出每块矩形上方的矩形,pre[i][0]记录数目(如果数据范围再开大一点,直接1~n枚举判断可能超时qwq) 2.每次对于可以涂的矩形,颜色相同的直接标记涂上,不同的dfs(而不用全都dfs) #include<cstdio> #include<cstring> using namespace std; int n,ans; int x[17],y[17],xx[17],yy[17],c…
By:Soroak 洛谷博客 知识点:模拟+暴力枚举 思路:题目中有提到闰年然后很多人就认为,闰年是需要判断的其实,含有2月29号的回文串,前四位是一个闰年那么我们就可以直接进行暴力枚举 一些小细节:1.需要判断它的月份是否超出122.每一个月份的日期可能不同3.闰年不需要判断,只需要把每年的2月都看为是29天就可以4.判断月份的时候,一定要%1000/100去判断,不然会出现1月和11月一样,10月被直接扔掉,2月和12月一样的情况(我就是这样得了60分).. #include<iostrea…
题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向.现要求把闭合圈内的所有空间都填写成22.例如:6 \times 66×6的方阵(n=6n=6),涂色前和涂色后的方阵如下: 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 2 2 1 1 1 2 2 2 1 1 2 2 2 2 1 1 1…