思路:
这种题我每次都想复杂了
害
其实只要定义一个数组来标记这棵树需不需要被移走即可
判断是否在给定区间
最后遍历0~L
int n,m;
int ans;
int vis[maxn];
struct node
{
int l,r;
}a[maxn];
int main()
{
cin >> n >> m;
memset(vis,0,sizeof(vis));
for(int i=0;i<m;i++) cin >> a[i].l >> a[i].r;
for(int i=0;i<m;i++)
{
for(int j=a[i].l;j<=a[i].r;j++)
vis[j] = 1;
}
for(int i=0;i<=n;i++)
{
if(vis[i] == 1)
ans++;
}
cout << n+1-ans << endl;
return 0;
}
本文详细解析洛谷P1047校门外的树问题,介绍了一种简单高效的解决策略。通过定义数组标记树木是否位于给定区间内,最后遍历数组计算需移除的树木数量,从而得出最终答案。
625

被折叠的 条评论
为什么被折叠?



