当前位置: 首页 > news >正文

[蓝桥杯 2025 省 B] 水质检测(暴力 )

暴力暴力

菜鸟第一次写题解,多多包涵!!!

这个题目的数据量很小,所以没必要去使用bfs,直接分情况讨论即可

一共两排数据,我们使用贪心的思想,只需要实现从左往右的过程中每个检测器相互连接即可,那么我们分三种情况讨论



第一种情况
 

#.
.

当第一排的当前有检测器,而第一排的下一个没有检测器,且第二排的当前位没有检测器,我们不管第二排的下一个位置有没有检测器,我们只需要把第一排的下一个添加检测器便能够实现四个格子检测器的连通



第二种情况

.
#.

与第一种情况类似,只是位置变了一下



第三种情况

#.
#.

这种情况相对复杂,我们不知道后面的情况,我们就只能从当前位置开始从第一排和第二排分别寻找再次出现 #的位置 ,哪排先出现哪排的后面一个就变成#

我们只需要判断这三种情况,没出现一次计数器加一,最后输出结果即可

这里面可以提前来找到最先出现 # 的位置 和最后出现 # 的位置,这样我们的循环会得到优化

希望能给你一点点小帮助

#include <bits/stdc++.h>
using namespace std;
int main()
{string s1, s2;cin >> s1 >> s2;int len = s1.size();int num = 0; // 计数器int l = len, r = 0;// 寻找第一出现和最后一个出现#的位置并记录for (int i = 0; i < len; i++){if (s1[i] == '#' || s2[i] == '#'){l = min(l, i);r = max(r, i);}}for (int i = l; i < r; i++){// 第一种情况的判断if (s1[i] == '#' && s1[i + 1] == '.' && s2[i] == '.'){num++;s1[i + 1] = '#';// cout << s1 << endl//      << s2 << endl//      << endl;}// 第二种情况的判断if (s1[i] == '.' && s2[i + 1] == '.' && s2[i] == '#'){num++;s2[i + 1] = '#';// cout << s1 << endl//      << s2 << endl//      << endl;}// 第三种情况的判断if (s1[i] == '#' && s2[i] == '#' && s2[i + 1] == '.' && s1[i + 1] == '.'){int p = i, q = i;for (int j = i + 1; j <= r; j++){if (s1[j] == '#'){p = j;break;}if (s2[j] == '#'){q = j;break;}}if (p >= q){s1[i + 1] = '#';num++;}else{s2[i + 1] = '#';num++;}// cout << s1 << endl//      << s2 << endl//      << endl;}}cout << num;return 0;
}

http://www.xdnf.cn/news/304633.html

相关文章:

  • python--------修改桌面文件内容
  • 第2章 神经网络的数学基础
  • 神经网络之激活函数:解锁非线性奥秘的关键
  • Linux开发工具【上】
  • 2025年LangChain(V0.3)开发与综合案例
  • 接口自动化工具如何选择?以及实战介绍
  • windows操作系统开机自启(自动启动) 运行窗口 shell:startup 指令调出开机自启文件夹
  • 驱动开发系列57 - Linux Graphics QXL显卡驱动代码分析(四)显示区域绘制
  • 使用原生javascript手动实现一个可选链运算符
  • [论文阅读]MCP Guardian: A Security-First Layer for Safeguarding MCP-Based AI System
  • 【Spring Boot 注解】@Configuration与@AutoConfiguration
  • vue2项目中使用pag格式动图
  • GMRES算法处理多个右端项的Block与PseudoBlock变体
  • 【已解决】Neo4j Desktop打不开,不断网解决
  • 一种基于条件生成对抗网络(cGAN)的CT重建算法
  • Hadoop架构再探讨
  • keil+vscode+腾讯ai助手
  • 【prometheus+Grafana篇】基于Prometheus+Grafana实现Linux操作系统的监控与可视化
  • 【程序员AI入门:基础】5.提示工程怎么释放LLM的潜力
  • WT2606B显示驱动TFT语音芯片IC:重塑电子锁交互体验的技术革新
  • 神经网络之训练的艺术:反向传播与常见问题解决之道
  • 数据库实验10 函数存储
  • Dify - Stable Diffusion
  • 《数据分析与可视化》(清华)ch-6 作业 三、绘图题
  • 解决Centos连不上网
  • 数字图像相关法在薄板变形测量中的实践
  • 《Python星球日记》第34天:Web 安全基础
  • Cadence学习笔记之---PCB工程创建、类与子类、颜色管理器介绍
  • 【Python】--实现多进程
  • 2.4线性方程组