- 吐吐很快乐
趴菜注意:校门外的树--幼儿版题解
- 2025-7-9 18:04:13 @
核心思想:用数组标记树是否被移走,最后统计未被标记的树。
关键点:
tree[i] = false 表示树还在。
tree[i] = true 表示树被移走。
最后数 false 的数量就是剩下的树。
#include<iostream> // 导入输入输出库,让电脑能读数字和打印结果
using namespace std; // 使用标准命名空间(固定写法,先不用管)
int l, m; // l表示马路的长度(树的数量是 l+1 棵),m表示要移走树的区域数量
int i, j; // 循环用的变量(像数数时的计数器)
int a, b; // 表示每个区域的起点a和终点b
int count = 0; // 用来计数剩下的树的数量
int main() { // 主函数,程序从这里开始运行
// 第一步:输入马路长度l和区域数量m
cin >> l >> m;
// 第二步:初始化树的数组(false表示树还在,true表示被移走)
bool tree[10001] = {false}; // 假设马路最多有10000棵树,初始状态都是“还在”
// 第三步:处理每个区域,标记被移走的树
for (i = 0; i < m; i++) { // 循环m次,处理每个区域
cin >> a >> b; // 输入当前区域的起点a和终点b
for (j = a; j <= b; j++) { // 从a到b,循环处理每一棵树
tree[j] = true; // 标记这棵树被移走了(true表示被移走)
}
}
// 第四步:数一数还剩下多少棵树(没有被标记为true的树)
for (i = 0; i <= l; i++) { // 从0到l,检查每一棵树
if (!tree[i]) { // 如果tree[i]是false(树还在)
count++; // 计数器+1
}
}
// 第五步:输出剩下的树的数量
cout << count << endl;
return 0; // 程序结束
}
0 条评论
目前还没有评论...