当前位置: 首页 > 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.jsqmd.com/news/22396/

相关文章:

  • How to Build an Agent
  • 树状数组 区间加 区间和 小记
  • if 语句
  • 深入解析:ue编辑器视口鼠标消失的问题
  • 详细介绍:React Native 中的 useState、Context
  • 昨夜雨疏风骤
  • 明天的任务
  • Windows SMB权限提升漏洞遭活跃利用
  • 深度神经网络 —— 使用深度自动编码器进行手写数字的去噪音
  • 江西振兴杯决赛Misc全解
  • 完整教程:Webpack5 第四节
  • vlan batch { vlan-id1 [ to vlan-id2 ] } 概念及题目 - 教程
  • 完整教程:ACWing08:高精度专题
  • 2025.10.25总结
  • ABC429
  • 使用本地git命令行拉取github.com软件仓库public项目
  • 10.25 CSP-S模拟39/2025多校冲刺CSP模拟赛8 改题记录
  • 嵌入子流形
  • 列表,集合,字典的增、删、查、改方法对比
  • 玩转单片机之智能车小露——数字与字符串的转换与打印
  • 数据采集作业1 102302111 海米沙
  • linux磁盘管理-RAID介绍 - 详解
  • 详细介绍:语义网络(Semantic Net)对人工智能中自然语言处理的深层语义分析的影响与启示
  • 线段上随机取n个点的最大距离期望
  • MusicFree 音乐
  • P10老板一句‘搞不定就P0’,15分钟我用Arthas捞回1000万资损 - 指南
  • RuoYi-Cloud-Plus 数据权限实现原理解析
  • 详细介绍:JavaScript学习笔记(十五):ES6模板字符串使用指南
  • Python毕业设计实例-基于python养老社区的查询预约架构(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 第5天(中等题 滑动窗口、逆向思维)