社区讨论
关于本题正解
P1047[NOIP 2005 普及组] 校门外的树参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mkgtawsu
- 此快照首次捕获于
- 2026/01/16 19:45 上个月
- 此快照最后确认于
- 2026/01/16 19:46 上个月
读题后发现,我们只需要根据题意模拟即可。
令 表示第 棵树的状态。
如果 为 0,那么就代表这棵树没有被移走。
如果 为 1,反之。
然后在输入时,从 到 进行循环,令之间的 到 都赋值为 1。
最后令 为剩余的树木数量,进行从 0 到 的循环,如果 为 0,那么 加一。输出 即可。
代码如下:
CPP#include<bits/stdc++.h>
using namespace std;
bool tree[10002];
int main(){
int m, l, sum = 0;
scanf("%d%d", &l, &m);
for(int i = 0; i < m; i++){
int le, ri;
scanf("%d%d", &le, &ri);
for(int j = le; j <= ri; j++){
if(tree[j] == 0){
sum++;
tree[j] = 1;
}
}
}
printf("%d", l + 1 - sum);
return 0;
}
加入我的入门组官方团队(传送门:https://www.luogu.com.cn/team/122126)
期待和大家一起进步!!!
回复
共 1 条回复,欢迎继续交流。
正在加载回复...