平板涂色【dfs】

这是一篇关于如何使用深度优先搜索(DFS)解决平板涂色问题的文章。文章描述了CE数码公司的自动涂色机(APM)产品,它需要按顺序给平板上的矩形涂色,避免颜色混合。题目要求设计一个算法找到使APM拿起刷子次数最少的涂色方案。输入包括矩形数量和每个矩形的坐标及颜色,输出是最少的拿起刷子次数。样例输入和输出分别给出了7个矩形的情况,最少需要3次涂色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

CE 数码公司开发了一种名为自动涂色机(APM)的产品。它能用预定的颜色给一块由不同尺寸且互不覆盖的矩形构成的平板涂色。
为了涂色,APM 需要使用一组刷子。每个刷子蘸了颜色 CC 。APM 拿起一把蘸有颜色 CC 的刷子,并给所有颜色为 CC 的矩形涂色。请注意,涂色有顺序要求:为了避免颜料渗漏使颜色混合,一个矩形只能在所有紧靠它上方的矩形涂色后,才能涂色。例如图中矩形 FF 必须在 CC 和 DD 涂色后才能涂色。注意,每一个矩形必须立刻涂满,不能只涂一部分。
写一个程序求一个使 APM 拿起刷子次数最少的涂色方案。注意,如果一把刷子被拿起超过一次,则每一次都必须记入总数中。

输入

第一行为矩形的个数 NN 。
下面有 NN 行描述了 NN 个矩形。每个矩形有 55 个整数描述,左上角的 yy 坐标和 xx 坐标,右下角的 yy 坐标和 xx 坐标,以及预定颜色。

输出

一行一个整数,表示拿起刷子的最少次数。

样例输入

7
0 0 2 2 1
0 2 1 6 2
2 0 4 2 1
1 2 4 4 2
1 4 3 6 1
4 0 6 4 1
3 4 6 6 2

样例输出

3
提示
数据范围与提示
对于全部数据,1 \leq N \leq 141≤N≤14,颜色号为 11 到 2020 的整数。保证平板的左上角坐标总是 (0, 0)(0,0),坐标的范围是 00 到 99 。

Code:Code:Code:

#include<bits/stdc++.h>
using namespace std;
int n,ans=15;
struct node
{
   
   
    int x1,y1,x2,y2,w,s[18],t;//s数组储存的是当前图形头上的图形,t为头上图形个数
    bool vis;
}a[15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值