题目
代码
#include<iostream>
using namespace std;
int main()
{
int m,l;
int tree[100001] = {0};
cin>>l>>m;
int u,v;
//循环有多少个区域
for(int i = 0; i < m; i++)
{
cin>>u>>v;//输入区域起点、终点坐标
for(int j = u; j <= v; j++)
{
tree[j] = 1;// 将区域内树木全部移除 设置为1
}
}
int count = 0;
for(int i = 0; i <= l; i++)
{
if(tree[i] == 0)
{
count++;
}
}
cout<<count<<endl;
return 0;
}
解析:建立一个数组,首先假设所有的树木全部都在,然后输入一个个区域,遍历这个区域,将区域内的所有树木全部砍掉,也就是将数组元素设置为1即可,最后枚举数组元素,看看有多少个0。