题解 | #剩下的树#

剩下的树

https://www.nowcoder.com/practice/f5787c69f5cf41499ba4706bc93700a2

暴力解,

  1. 创建数组tree,长度为l+1,初始化tree数组每一位都是1,表示该树存在;
  2. 遍历数组tree,将输入区间内的树”删去“,即将对应的值置0,表示该树被删去;
  3. 遍历数组tree,对数值为1的树计数;
  4. 输出计数count。

时间复杂度O(n2),空间复杂度O(l)

#include <cstring>
#include <iostream>
using namespace std;

int main() {
    int l, m;
    while (cin >> l >> m) { // 注意 while 处理多个 case
        int tree[l+1];
        int from, to, count = 0;
        for (int i = 0; i <= l; i++){
            tree[i] = 1;
            //cout<<tree[i]<<endl;
        }
        for (int i = 0;i < m; i++){
            cin >> from >> to;
            for (int j = from; j <= to; j++){
                tree[j] = 0;
            }
        }
        for (int i = 0; i <= l; i++){
            if (tree[i] == 1) count++;
            //cout<<tree[i]<<endl;
        }
        cout << count << endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

2024-12-27 10:21
已编辑
海南师范大学 媒介策划
到我怀里来:身高体重住址这些就别写了,留几个关键的就行,工作经历突出重点写详细点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务