zoukankan      html  css  js  c++  java
  • 校门外的树

    传送门

    给定范围,给一些区间,这些区间树被清理掉,问最后剩多少种树。

    方法一,预处理标记该点已不存在树。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e5;
    int vis[maxn];
    int main(){
        int l,r,n,m,sum=0;cin>>n>>m;
        for(int i=0;i<m;i++){
            cin>>l>>r;
            for(int j=l;j<=r;j++)vis[j]=1;
        }
        for(int i=0;i<=n;i++){if(!vis[i])sum++;}
        cout<<sum<<endl;
        return 0;
    }

    方法二,利用区间有树,则第一个点权值+1,最后一个点的后一个点-1,利用前缀和是否为0,判断是该点是否有树。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e5;
    int a[maxn];
    int sum;
    int main(){
        int n,m,l,r;cin>>n>>m;
        for(int i=0;i<m;i++){
            scanf("%d%d",&l,&r);
            a[l]++;a[r+1]--;
        }
        int ans=0;
        for(int i=0;i<=n;i++){
            sum+=a[i];
            if(!sum)ans++;
        }
        cout<<ans<<endl;
        return 0;
    }

     

  • 相关阅读:
    js 设计模式
    jquery 概述
    Node.js最新Web技术栈(2015年5月)
    this
    gulp
    bootstrap modal
    jsTree问题
    iterm2 学习笔记
    knowledge_map 修改笔记
    handsontable 问题
  • 原文地址:https://www.cnblogs.com/mohari/p/12984394.html
Copyright © 2011-2022 走看看