文章

9

粉丝

0

获赞

39

访问

981

头像
剩下的树 题解:标记去重
P1175 清华大学上机题
发布于2026年2月21日 12:30
阅读数 36

  1. 思路:对移除的每棵树都做一次标记,则当没有标记时候,才可以移除,若有标记,则表示已经移除过了。

    1. arr[i] == 0 表示无标记, 1 表示有标记

      // 1126
      #include <bits/stdc++.h>
      using namespace std;
      
      int main(){
          int l,m;
          while(cin >> l >> m){
              int *arr = (int*)malloc(sizeof(int) * (l + 5));
              for(int i = 0; i < (l + 5); i++) arr[i] = 0;
              int cnt = l + 1;
              for(int i = 0; i < m; i++){
                  int a,b; // a 起点 b 端点
                  cin >> a >> b;
                  for(int j = a; j <= b; j++){
                      if(arr[j] == 0){
                          cnt--;
                          arr[j] = 1; // 标记上,下次就进不来
                      }
                  }
              }
              cout << cnt << endl;
          }
      }
      

       

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发