刷题笔记 洛谷 P1162 填涂颜色

思路来自 大佬 hat.openai.com/c/9c30032e-5fb9-4677-8c15-9ea6530dc6db

题目链接 P1162 填涂颜色 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

思路 搜索  

首先 在外面围上一圈0开始搜素 

因为题目说将封闭区域内的0变成2 我们可以在外面进行搜索 

把外面所有可以搜索走过的区域变成2 这样1围成的封闭区域里的是0;

1作为“围墙”

输出的时候 输出2-a[i][j]

可以走到的地方就变成0

围墙2-1=1 保持不变

封闭区域内的0我们没访问到 未标记 所以2-0=2

于是 实现了将所有封闭区域的0变成2

代码

#include<iostream>
#include<queue>
using namespace std;
int n;
int a[35][35];
queue <pair <int,int> > que;//定义一个可以储存数对的队列 
void search(int x,int y){
    int dx[5]={0,0,1,0,-1};//设置偏移量  
    int dy[5]={0,1,0,-1,0};//基本操作 不会可以去搜 
    que.push(pair<int,int> (x,y));//合法点入队 
    while(!que.empty() ){
        pair<int,int> t=que.front();//取出 
        que.pop() ;
        a[t.first ][t.second ]=2;//标记可以搜到 
        for(int i=1;i<=4;i++){
            if(t.first +dx[i]>=0&&t.first +dx[i] <= n+1)
            if(t.second+dy[i]>=0&&t.second+dy[i] <= n+1)//判断是否越界 
            if(a[t.first +dx[i]][t.second +dy[i]]==0){//如果可以到达该点 
                que.push(pair<int,int>(t.first +dx[i],t.second +dy[i]));//存入 
            }
        } 
    } 

int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }
    search(0,0);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<<2-a[i][j]<<' ';
        }
        cout<<endl;
    }
    
    
    
    
    
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/415463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LabVIEW 】串口如何读取长度不一致的字符串

工程经验 1、在循环中&#xff0c;加入定时器&#xff0c;这样可以一段时间读取一次。 2、只要获取完整的一帧数据&#xff0c;就可以进行过滤筛选。

Leetcode—82. 删除排序链表中的重复元素 II【中等】

2024每日刷题&#xff08;117&#xff09; Leetcode—82. 删除排序链表中的重复元素 II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val…

【踏雪无痕的痕四】——0到底是有还是没有?

目录 一、背景介绍三、过程1.0的历史发展&#xff1f;2.如何将0讲给一个刚上一年级的孩子&#xff1f;3.0的边界和意义&#xff1f;4.那四年&#xff0c;到底在培养什么&#xff1f;和0有什么关系&#xff1f; 四、总结 一、背景介绍 最近在看一年级数学&#xff0c;其中介绍到…

几种新能源汽车(纯电、插混、油混、增程)的区别

纯电&#xff1a;顾名思义就是仅用电池驱动。 插混&#xff1a;汽车具备两套独立的动力系统&#xff1a;油动和电动。该种汽车可充电可加油&#xff0c;用油还是用电自己决定。他的系统结构图如下图&#xff1a; 油混&#xff1a;也称为油电混合。他的特点是可加油不可充电&…

前后端分离项目Vue+node.js二手商品交易系统74qb3

校园二手交易网络的开发和使用在不同的地方是有着差别的。在初高中&#xff0c;校园二手交易网也就是简单的买卖物品&#xff1b;但在大学中&#xff0c;通过买卖自己的物品可以建立联系成为朋友&#xff0c;也就是说校园二手交易网不仅仅是一个交易物品的平台&#xff0c;同时…

重拾前端基础知识:CSS

重拾前端基础知识&#xff1a;CSS 前言选择器简单选择器属性选择器组合选择器 插入CSS内嵌样式&#xff08;Inline Style&#xff09;内部样式&#xff08;Internal Style&#xff09;外部样式&#xff08;External Style&#xff09; 层叠颜色背景颜色文本颜色RGB 颜色HEX 颜色…

JS api基础初学

web api基础 变量声明有三个var let 和const 我们应该用那个呢&#xff1f; 首先var先排除&#xff0c;老派写法&#xff0c;问题很多&#xff0c;可以淘汰掉... let or const? 建议&#xff1a;const优先&#xff0c;尽量使用const&#xff0c;原因是&#xff1a; con…

JMeter学习(一)工具简单介绍

一、JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序&#xff0c;被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能&#xff0c;例如&#xff1a;静态文件&#xff0c;Java Servlet,CGI Scripts,Java Object,数据库和FTP服务…

我在使用 Copilot 时遇到了许可证验证错误。

如果使用的是 Copilot&#xff0c;并收到以下错误消息&#xff0c;请按以下步骤进行操作&#xff1a; We encountered a problem validating your Copilot license. For more information, see https://aka.ms/copilotlicensecheck 请确保使用的是正确的帐户 请确保已使用具…

信钰证券|昨夜,“金龙”大涨

当地时间2月27日&#xff0c;我国资产自开盘一路走高&#xff0c;抢手中概股普涨&#xff0c;纳斯达克我国金龙指数涨2.10%。其中&#xff0c;抱负轿车涨超11%&#xff0c;网易涨超5%&#xff0c;爱奇艺、微博涨超4%。 美股方面&#xff0c;三大指数涨跌纷歧。到收盘&#xff…

npm淘宝镜像报错certificate has expired

1、概述 vue项目使用npm install命令时&#xff0c;突然报错&#xff1a;“...certificate has expired” 2、解决 1.清空缓存&#xff1a;npm cache clean --force 2.修改镜像&#xff08;管理员运行命令行&#xff09;&#xff1a;npm config set registry https:/…

5G双域快网

目录 一、业务场景 二、三类技术方案 2.1、专用DNN方案 2.2、ULCL方案&#xff1a;通用/专用DNNULCL分流 2.3、 多DNN方案-定制终端无感分流方案 漫游场景 一、业务场景 初期双域专网业务可划分为三类业务场景&#xff0c;学校、政务、文旅等行业均已提出公/专网融合访问需…

算法C++

枚举 1.化段为点 前缀和 eg:给一个数列&#xff0c;算x到y个数的和 #include <iostream> #include <vector> using namespace std;int main() {int n;cin>>n;vector<int> a(n);vector<int> sum(n1,0);for(int i0;i<n;i){scanf…

npm 镜像源切换与设置

项目背景 依赖安装中断或响应特别慢。 可以看到当前所用的镜像是 https://registry.npmjs.org 。 切换淘宝镜像之后总算能够安装下来 命令行模式 查看当前镜像源 # 查看当前镜像源 npm config get registry 可以看到默认情况下是官方默认全局镜像 https://registry.npmjs.o…

将任何网页变成桌面应用,全平台支持 | 开源日报 No.184

tw93/Pake Stars: 20.9k License: MIT Pake 是利用 Rust 轻松构建轻量级多端桌面应用的工具。 与 Electron 包大小相比几乎小了 20 倍&#xff08;约 5M&#xff01;&#xff09;使用 Rust Tauri&#xff0c;Pake 比基于 JS 的框架更轻量和更快内置功能包括快捷方式传递、沉浸…

RabbitMQ讲解与整合

RabbitMq安装 类型概念 租户 RabbitMQ 中有一个概念叫做多租户&#xff0c;每一个 RabbitMQ 服务器都能创建出许多虚拟的消息服务器&#xff0c;这些虚拟的消息服务器就是我们所说的虚拟主机&#xff08;virtual host&#xff09;&#xff0c;一般简称为 vhost。 每一个 vhos…

顶会ICLR2024论文Time-LLM:基于大语言模型的时间序列预测

文青松 松鼠AI首席科学家、AI研究院负责人 美国佐治亚理工学院(Georgia Tech)电子与计算机工程博士&#xff0c;人工智能、决策智能和信号处理方向专家&#xff0c;在松鼠AI、阿里、Marvell等公司超10年的技术和管理经验&#xff0c;近100篇文章发表在人工智能相关的顶会与顶刊…

RabbitMQ-消息队列:Federation Exchange、Federation Queue、Shovel

25、Federation Exchange 1、使用它的原因 ​ (broker 北京)&#xff0c;(broker 深圳)彼此之间相距甚远&#xff0c;网络延迟是一个不得不面对的问题。有一个在北京 的业务(Client 北京) 需要连接(broker 北京)&#xff0c;向其中的交换器 exchangeA 发送消息&#xff0c;此…

3G 蜂窝移动通信

4 3G 蜂窝移动通信 第三代 (3G) 蜂窝移动通信系统 -1996 年正式标准名称&#xff1a;IMT-2000。 -工作在 2000 MHz 频段&#xff0c;数据率可达 2000 kbit/s&#xff08;固定站&#xff09;和 384 kbit/s&#xff08;移动站&#xff09;。 -包括中国通信标准化协会 CCSA (C…

Flutter自定义输入框同时出现多种字体颜色

Flutter自定义输入框同时出现多种字体颜色 效果展示基本逻辑代码示例 效果展示 输入框内效果 基本逻辑 主要通过重写TextEditingController中的buildTextSpan方法实现&#xff0c;通过在buildTextSpan中将内容手动切割&#xff08;本人通过正则表达式将#这些话题分割开来&a…