zoukankan      html  css  js  c++  java
  • CodeForces 589F Gourmet and Banquet

    给你N(1<=N<=100)个区间 l-r 求最大的子区间大小使每个区间都有这个子区间且覆盖不重复

    做法 输入的时候纪录区间最大值 然后二分求答案 

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    #define MAXN 101
    #define MAX 10001
    #define IMAX 2147483647
    struct DISH{int a,b;}a[MAXN];
    int N,Left=0,Right=0,ans=0;
    bool vis[MAX];
    bool cmp(DISH X,DISH Y){return X.b<Y.b;}
    bool check(int time_per_dish)
    {
        memset(vis,false,sizeof(vis));
        for(int i=1;i<=N;i++)
        {
              if(a[i].b-a[i].a<time_per_dish)   return false;
              int occupy=0;
              for(int j=a[i].a;j<a[i].b;j++)
                      if(!vis[j])//vis[j]表示j->j+1的时间是否被占用 
                      {
                            occupy++;
                            vis[j]=true;
                            if(occupy==time_per_dish)   break;
                    }
              if(occupy<time_per_dish)   return false;
        }
        return true;
    }
    int main()
    {
    #ifndef ONLINE_JUDGE 
          freopen("input.txt","r",stdin); 
          freopen("output.txt","w",stdout); 
    #endif 
        scanf("%d",&N);
        for(int i=1;i<=N;i++)
        {
              scanf("%d%d",&a[i].a,&a[i].b);
              Right=max(Right,a[i].b-a[i].a);
        }
        sort(a+1,a+1+N,cmp);
        while(Left<=Right)
        {
              int middle=(Left+Right)>>1;
              if(check(middle))
              {
                      Left=middle+1;
                      ans=max(middle,ans);
              }
              else  Right=middle-1;
              
        }
        printf("%d
    ",ans*N);
        return 0;
    }
     
  • 相关阅读:
    SpringCloud与SpringBoot区别
    Spring cloud概念
    微服务框架对比
    期末作品检查
    管理信息系统 第三部分 作业
    作业38——模型分离(选做)
    作业37——密码保护
    作业36——实现搜索功能
    作业35——完成个人中心—导航标签
    作业34——个人中心标签页导航
  • 原文地址:https://www.cnblogs.com/Aragaki/p/7134941.html
Copyright © 2011-2022 走看看