解题思路:
把马路的长当作数组长,在数组中全录入1,代表栽了树;在后续输入的数据中,两两为一组,在上一个数组中把一组的值变为0即可,则不需要考虑重复区域的问题,最后计算1的数量即可
注意事项:
参考代码:
#include<iostream>
using namespace std;
int main()
{
int arr[10010];//用于存放数据
int a, b;//马路长度和区域数目
int x, y;//区域输入的两个数
int sum = 0;//记录总树
cin >> a >> b;
a++;//树比马路长多1
for (int i = 0; i < a; i++)//让马路上的数都为1表示全栽满树
{
arr[i] = 1;
}
for (int j = 0; j < b; j++)
{
cin >> x >> y;
y++; //树比区域长多1
for (x; x < y; x++)//让区域内的数变为0代表挖掉的树
arr[x] = 0;
}
for (int i = 0; i < a; i++)//计算出剩余的树
{
if (arr[i] == 1)
sum++;
}
cout << sum;
return 0;
}
0.0分
0 人评分