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

刷题日记—数组—布尔数组的应用

前几天刷题碰到了种树,切方块类型的题目,这类题目用布尔类型判断每一个个体的状态,最后根据每个元素对应的布尔值来统计数目:如下:
1.移数问题:
image
解题步骤如下:```plaintext

include

using namespace std;
bool flag[10001];
int main(){
int l,m;
while(cin>>l>>m){
while(m--){
int x1,x2;
cin>>x1>>x2;
for(int i=x1;i<=x2;++i){
flag[i]=true;
}
}
int cnt=0;
for(int i=0;i<=l;++i){
if(!(flag[i])){
cnt++;
}
}
cout<<cnt<<endl;

}
return 0;

}

 ==这里有一个细节点:bool数组是定义在main函数外的,因为如果定义在main函数里面,会导致bool数组被随机赋值,而定义在main函数外则是全都赋初始值为0。==
2.切割方块问题
题目如图
![image](https://img2024.cnblogs.com/blog/3713817/202510/3713817-20251025223155222-2117006809.png)
解题:```plaintext
#include<iostream>
using namespace std;
bool flag[21][21][21];
int main() {int w, x, h;cin >> w >> x >> h;for (int i = 1; i <= w; ++i) {for (int j = 1; j <= x; ++j) {for (int k = 1; k <= h; ++k) {flag[i][j][k] = 1;}}}int q;cin >> q;while (q--) {int x1, x2, y1, y2, z1, z2;cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;for (int i = x1; i <= x2; ++i) {for (int j = y1; j <= y2; ++j) {for (int k = z1; k <= z2; ++k) {flag[i][j][k] = 0;}}}}int cnt = 0;for (int i = 1; i <= w; ++i) {for (int j = 1; j <= x; ++j) {for (int k = 1; k <= h; ++k) {if (flag[i][j][k] == 1) {cnt++;}}}}cout << cnt;return 0;
}

写完上面两题,我们应该就能体会到bool数组的优越性了,它可以描述某一位置的状态,避免重叠区间情况的反复取值造成的运算错误,从而实现精准计数,避免同一位置的多次取值。

在解题过程中常见的错误:1.条件运算符“==”写成了赋值运算符“=”导致WA;
2.局部变量的定义位置错误,导致每次循环都重置初始值或者无法使用定义值。

http://www.gsyq.cn/news/30522.html

相关文章:

  • if 语句
  • 【MySQL】Oracle与MySQL,跨库数据转储 - 详解
  • 江西振兴杯决赛Misc全解
  • 2025.10.25总结
  • 数据采集作业1 102302111 海米沙
  • ABC429(C,D,E)
  • 详细介绍:语义网络(Semantic Net)对人工智能中自然语言处理的深层语义分析的影响与启示
  • 2023.2.24 操作系统期末考试回忆 山科 山东科技大学
  • MusicFree 音乐
  • P10老板一句‘搞不定就P0’,15分钟我用Arthas捞回1000万资损 - 指南
  • Python毕业设计实例-基于python养老社区的查询预约架构(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 华为堡垒机
  • MinIO快速入门
  • Educational Codeforces Round 66 (Rated for Div. 2) A~F
  • stm32使用SPI外设读取W25Q32芯片
  • Avjinder Singh Kaler | 数量遗传学基础
  • 鲁东大学提出可解释的自适应集成机器学习全基因组选择算法用于小麦产量性状关键SNPs筛选
  • 台球厅收银台押金原路退回系统押金预授权—东方仙盟 - 详解
  • 数论专题小记
  • 《程序员修炼之道:从小工到专家》笔记1
  • 科普报告:分子标记辅助选择(MAS)育种
  • 实用指南:【ansible/K8s】K8s的自动化部署源码分享
  • 作物遗传育种中的多亲本互交群体(MAGIC)
  • 联邦大型语言模型、多智能体大型语言模型是什么? - 详解
  • 一个用于自动化基因表达分析的多智能体框架GenoMAS
  • 50年的玉米育种改良,是如何应对气候变化的?
  • 刷题日记—洛谷数组题单—幻方
  • python爬虫进阶版练习(只说重点,selenium) - 指南
  • 基因组选择(GS)如何加速作物遗传增益?
  • OpenAI推出内置ChatGPT的Atlas浏览器:重新定义网页浏览体验