zoukankan      html  css  js  c++  java
  • 洛谷P3740 【[HAOI2014]贴海报】

    (呃。。。本蒟蒻的第一篇题解qwq)。。不废话了讲正题。。思路来源于铺地毯(-->传送门)。。先算出每一个格子上覆盖的海报并把可见的海报做标记然后算出有多少海报是可见的。。但是作为省选题怎么可能会那么简单。。所以加了两个小优化。。缩小范围和标配快读。。。下面放AC代码。。。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    
    using namespace std;
    
    void R(int &x){
        int f=1;
        x=0;
        char s=getchar();
        while(s<'0'||s>'9'){
            if(s=='-'){
                f=-1;
            }
            s=getchar(); 
        }
        while(s>='0'&&s<='9'){
            x=x*10+s-'0';
            s=getchar();
        }
        x*=f;
    }
    
    const int MAXN=10000001;
    
    int main(){
        int n,m;
        R(n);
        R(m);
        int a[m+1],b[m+1],f[m+1];
        int beginmi=MAXN,endma=0;
        for(int i=1;i<=m;i++){
            R(a[i]);
            R(b[i]);
            f[i]=0;
            beginmi=min(beginmi,a[i]);
            endma=max(endma,b[i]);
        }
        for(int i=beginmi;i<=endma;i++){
            for(int j=m;j>=1;j--){
                if(i<=b[j]&&i>=a[j]){
                    f[j]=1;
                    break;
                }
            }
        }
        int ans=0;
        for(int i=1;i<=m;i++){
            ans+=f[i];
        }
        printf("%d",ans);
        return 0;
    }
    
  • 相关阅读:
    11月20号
    11月17号
    11月21号
    11月19号
    第一章 Windows下前端代码打包编译
    每日日报
    每日日报
    每日日报
    学习Java的第十三天
    学习Java的第十六天——随机数
  • 原文地址:https://www.cnblogs.com/--BLUESKY007/p/9337479.html
Copyright © 2011-2022 走看看