2131 - 枚举-练习-涂国旗

2131 - 枚举-练习-涂国旗

c++刷题 超能力编程

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

分析

枚举涂w的底边和涂b的底边即可
剩下的部分都涂r
数据范围这么小,暴力枚举,代码简单难度低。搜索什么的用不着啦!
那么问题来了:怎么枚举呢?
在这里插入图片描述
我们只要枚举白与蓝、蓝与红的边界(如上图a和b),再统计三个区域里总共有多少格子需要涂改颜色,用一个变量来记录最优的答案(即需要涂改的格子数最少),不断更新,最后输出就OK了qwq。

f1:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;const int N = 60;int n, m;
char g[N][N];
int res = 0;int main()
{scanf("%d%d", &n, &m);for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){cin >> g[i][j];}} int wst = 1, wend;int res = 3000;int bst, bend, rst, rend;// 枚举涂w的终点行wend 1 -> n-2 for(wend = wst; wend <= n-2; wend++){int tmpa = 0;// wst -> wend 图 w for(int i = wst; i <= wend; i++){for(int j = 1; j <= m; j++){if(g[i][j] != 'W') tmpa++;}}// 枚举涂b的终点行bend wend+1 -> n-1bst = wend + 1, bend;for(bend = bst; bend <= n-1; bend++){int tmpb = 0;for(int i = bst; i <= bend; i++){for(int j = 1; j <= m; j++){if(g[i][j] != 'B') tmpb++;}}// 最后全涂成rfor(int i = bend+1; i <= n; i++){for(int j = 1; j <= m; j++){if(g[i][j] != 'R') tmpb++;}} res = min(res, tmpa + tmpb);}
//		res = min(res, tmp);}cout << res << endl;return 0;
}

f2:

int n,m,ans,mi=inf;//mi初始化成一个很大的数
char c[N][N];
int main()
{int i,j,k,g;cin>>n>>m;for(i=1;i<=n;i++)for(j=1;j<=m;j++) cin>>c[i][j];for(i=1;i<=n-2;i++)//由于白色下面还有蓝色和红色,所以i(白与蓝的边界)枚举到(n-2)for(j=i+1;j<=n-1;j++)//j(蓝与红的边界)至少要比i大1,同理枚举到(n-1),这样可以减少枚举次数{ans=0;//初始化//壮观地枚举三个区域for(k=1;k<=i;k++)for(g=1;g<=m;g++) if(c[k][g]!='W') ans++;for(k=i+1;k<=j;k++)for(g=1;g<=m;g++) if(c[k][g]!='B') ans++;for(k=j+1;k<=n;k++)for(g=1;g<=m;g++) if(c[k][g]!='R') ans++;mi=min(ans,mi);//更新答案}cout<<mi<<endl;return 0;
}

在这里插入图片描述

end!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SQL基础】mysql中如何将日期时间类型转换为日期类型

在MySQL中&#xff0c;将DATETIME类型的数据转换为日期格式可以通过使用DATE()函数来实现。DATE()函数可以从DATETIME或TIMESTAMP类型的值中提取出日期部分。 以下是几种将DATETIME转换为日期格式的示例&#xff1a; 直接转换DATETIME列为日期&#xff1a; SELECT DATE(date…

Containerd方式部署K8s集群

1.1 Kubernetes基础环境部署 kubernetes有多种部署方式&#xff0c;目前主流的方式有kubeadm、minikube、二进制包 minikube&#xff1a;一个用于快速搭建单节点kubernetes的工具 kubeadm&#xff1a;一个用于快速搭建kubernetes集群的工具 二进制包 &#xff1a;从官网下载…

【DPU系列之】DPU中的ECPF概念是什么?全称是什么?(E CPF对标H CPF;embedded CPU function ownership)

ECPF&#xff1a;embedded CPU function ownership。 嵌入式CPU运转ownership。也叫DPU模式&#xff0c;是DPU工作运转3种模式之一&#xff0c;也是默认的模式。这里的嵌入式CPU指的是DPU上ARM CPU&#xff0c;表示网卡所有资源和功能被embedded CPU全权管理&#xff0c;行使所…

【动态规划】投资问题

本文利用markdown基于https://blog.csdn.net/qq_41926985/article/details/105627049重写,代码部分为本人编辑 代码要求 应用动态规划方法&#xff0c;求解投资问题&#xff0c;实现下面的例子。 #define MAX_N 4 //最大投资项目数目 #define MAX_M 5 //最大投资钱数(万元) /…

【机器视觉】yolo-world-opencvsharp-.net4.8 C# 窗体应用程序

这段代码是基于 OpenCvSharp, OpenVinoSharp 和 .NET Framework 4.8 的 Windows Forms 应用程序。其主要目的是加载和编译机器学习模型&#xff0c;对输入数据进行推理&#xff0c;并显示结果。 下面是该程序的主要功能和方法的详细总结&#xff1a; 初始化 OpenVINO 运行时核心…

基于Pytorch深度学习——卷积神经网络(卷积层/池化层/多输入多输出通道/填充和步幅/)

本文章来源于对李沐动手深度学习代码以及原理的理解&#xff0c;并且由于李沐老师的代码能力很强&#xff0c;以及视频中讲解代码的部分较少&#xff0c;所以这里将代码进行尽量逐行详细解释 并且由于pytorch的语法有些小伙伴可能并不熟悉&#xff0c;所以我们会采用逐行解释小…

【DPU系列之】如何通过带外口登录到DPU上的ARM服务器?(Bluefield2举例)

文章目录 1. 背景说明2. 详细操作步骤2.1 目标拓扑结构2.2 连接DPU带外口网线&#xff0c;并获取IP地址2.3 ssh登录到DPU 3. 进一步看看系统的一些信息3.1 CPU信息&#xff1a;8核A723.2 内存信息 16GB3.3 查看ibdev设备 3.4 使用小工具pcie2netdev查看信息3.5 查看PCIe设备信息…

python笔记:gensim进行LDA

理论部分&#xff1a;NLP 笔记&#xff1a;Latent Dirichlet Allocation &#xff08;介绍篇&#xff09;-CSDN博客 参考内容&#xff1a;DengYangyong/LDA_gensim: 用gensim训练LDA模型&#xff0c;进行新闻文本主题分析 (github.com) 1 导入库 import jieba,os,re from ge…

安卓手机APP开发__用媒体会话服务进行后台播放

安卓手机APP开发__媒体开发部分__用媒体会话服务进行后台播放 目录 概述 使用一个媒体会话服务 实现服务的生命周期 提供对媒体会话的读取 在配置文件中声明服务 概述 当APP不在前台时&#xff0c;经常希望能够播放媒体。例如&#xff0c;一个音乐播放器 在用户锁屏或者…

【云原生】Docker 的网络通信

Docker 的网络通信 1.Docker 容器网络通信的基本原理1.1 查看 Docker 容器网络1.2 宿主机与 Docker 容器建立网络通信的过程 2.使用命令查看 Docker 的网络配置信息3.Docker 的 4 种网络通信模式3.1 bridge 模式3.2 host 模式3.3 container 模式3.4 none 模式 4.容器间的通信4.…

Stream流操作

看到Stream流这个概念&#xff0c;我们很容易将其于IO流联系在一起&#xff0c;事实上&#xff0c;两者并没有什么关系&#xff0c;IO流是用于处理数据传输的&#xff0c;而Stream流则是用于操作集合的。 当然&#xff0c;为了方便我们区分&#xff0c;我们依旧在这里复习一下…

长期找 AI 专家,邀请参加线上聊天直播

诚邀 AI 专家参加线上聊天&#xff0c;成为嘉宾。 分享前沿观点、探讨科技和生活 除节假日外&#xff0c;每周举办在线聊天直播 根据话题和自愿形式结合&#xff0c;每期 2~3 位嘉宾 成为嘉宾&#xff0c;见下&#xff1a;

小程序端的懂车帝二手车数据采集

import datetime import random import string import time import pymysql import requests import json def mysql_sql(conn, cur): """创建一个存储数据表和一个存储链接表""" cur.execute( CREATE TABLE if not exists dcd_x…

AcWing 851:spfa求最短路 ← 链式前向星存图

【题目来源】https://www.acwing.com/problem/content/853/【题目描述】 给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c; 边权可能为负数。 请你求出 1 号点到 n 号点的最短距离&#xff0c;如果无法从 1 号点走到 n 号点&#xff0c;则输出 i…

ADS软件(PathWave 先进设计系统软件)分享与安装

ADS软件的简介 ADS软件&#xff08;Advanced Design System&#xff09;主要用于射频&#xff08;RF&#xff09;、微波&#xff08;Microwave&#xff09;和毫米波&#xff08;Millimeter-wave&#xff09;电路的设计、仿真和分析。它提供了一套强大的工具和功能&#xff0c;…

【STM32项目】基于STM32多传感器融合的新型智能导盲杖设计(完整工程资料源码)

基于STM32多传感器融合的新型智能导盲杖设计演示效果 基于stm32智能盲杖 前言: 目前,中国盲人数量已突破两千万大关,而城市盲道设计不合理、盲道被非法侵占等危害盲人出行安全的问题屡禁不止[1-3]。随着科技发展,智能盲杖不断涌现,但这些智能盲杖并不智能[4,5]。针对市售…

Angular进阶-NVM管理Node.js实现不同版本Angular环境切换

一、NVM介绍 1. NVM简介 Node Version Manager&#xff08;NVM&#xff09;是一个用于管理多个Node.js版本的工具。它允许用户在同一台机器上安装和使用多个Node.js版本&#xff0c;非常适合需要同时进行多个项目的开发者。NVM是开源的&#xff0c;支持MacOS、Windows和Linux…

【解决】docker一键部署报错

项目场景见&#xff1a;【记录】Springboot项目集成docker实现一键部署-CSDN博客 问题&#xff1a; 1.docker images 有tag为none的镜像存在。 2.有同事反馈&#xff0c;第一次启动docker-compose up -d 项目无法正常启动。后续正常。 原因&#xff1a; 1.服务中指定了镜像m…

laravel、tp等框架底层代码config方法实现示例

剖析php如何优雅得实现框架config方法核心代码 在php的laravel、tp框架中,普遍采用配置文件直接return数组的方式存放配置信息、日常的代码编写我们并不会这样做&#xff0c;其实核心代码很简单,只需要把include file赋值给变量即可 php if(!function_exists("config&quo…

Eclipse中开启服务,网页无法打开 运行程序显示404

一、eclipse中开启服务后&#xff0c;网页无法打开的问题 当你在eclipse中开启服务后&#xff0c;如果网页无法打开&#xff0c;可能是以下几个原因导致的&#xff1a; 1. 端口冲突&#xff1a;请确保你所使用的端口没有被其他程序占用。可以尝试更换一个未被占用的端口。 2…