思路及代码
/*
1.1第一行输入 L,M,L+1为树的数量,M 为地铁站数量
1.2接下来 M 行输入每个地铁站坐标的起始位置和结束位置,整数
2创建含 L+1 个元素的数组,赋值为1,表示初始坐标上的数的数量
3件地铁站的坐标赋值为0
4遍历数组,求和
5输出剩下的树的数量
*/
#include<iostream>
using namespace std;
int main(){
int L, M, a, b;
while (cin >> L >> M)
{
int sum = 0;
int list[L+1];
fill(list, list+L+1, 1);
for (int i = 0; i < M; i++)
{
cin >> a >> b;
fill(list+a, list+b+1, 0);
}
for (int j = 0; j < L + 1; j++)
{
sum += list[j];
}
cout << sum << endl;
}
return 0;
}
参考:1️⃣DHU|OJ |C/C++|进阶-26 -树_c++,输入一个数,然后地铁站,要把树给摘掉-CSDN博客
不会做,主要思路来于1️⃣
收获:1️⃣重复问题 数组赋值1改0的思路
2️⃣fill()
fill( first, last, value );
//fill函数会将范围 [ first, last ) 内的每个元素都设置为 value。first,last 均表示数组或对象的下标。
注意:只适用于数组和vector对象,不适用于array对象
可用于数组初始化统一值,修改子数组的值等。
菜菜,不是教程,做题和学习记录