社区讨论

关于本题正解

P1047[NOIP 2005 普及组] 校门外的树参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mkgtawsu
此快照首次捕获于
2026/01/16 19:45
上个月
此快照最后确认于
2026/01/16 19:46
上个月
查看原帖
读题后发现,我们只需要根据题意模拟即可。
fif_i 表示第 ii 棵树的状态。 如果 fif_i 为 0,那么就代表这棵树没有被移走。 如果 fif_i 为 1,反之。
然后在输入时,从 xxyy 进行循环,令之间的 fxf_xfyf_y 都赋值为 1。
最后令 cntcnt 为剩余的树木数量,进行从 0 到 ll 的循环,如果 fif_i 为 0,那么 cntcnt 加一。输出 cntcnt 即可。
代码如下:
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 条回复,欢迎继续交流。

正在加载回复...