day4 CodeForces 589F Gourmet and Banquet

来源:互联网 发布:社会网络信息流模型 编辑:程序博客网 时间:2024/05/16 10:55

题目是要求每道菜都能吃的最大区间,首先可以将区间按照右端点排序,可以让当前区间队后面区间的影响最低,之后从最大区间往下扫找到符合的答案就可以了

#include"iostream"#include"memory.h"#include"algorithm"using namespace std;int n;struct node{    int l,r;};node d[10005];int v[10005];int cmp(const node& a,const node& b){    return (a.r<b.r)||(a.r==b.r&&a.l<b.l);}int test(int x){    memset(v,0,sizeof(v));    for(int i=1;i<=n;i++)    {        int sum=0;        for(int j=d[i].l+1;j<=d[i].r;j++)        if(!v[j])        {            v[j]=1;            sum++;            if(sum==x) break;        }        if(sum<x) return 0;    }    return 1;}int main(){    cin>>n;    for(int i=1;i<=n;i++) cin>>d[i].l>>d[i].r;    //for(int i=0;i<n;i++) cout<<d[i].l<<d[i].r<<endl;    sort(d+1,d+n+1,cmp);    //for(int i=0;i<n;i++) cout<<d[i].l<<d[i].r<<endl;    int hi,lo,mid;    lo=1;    hi=10000+1;    while(!test(hi)&&hi>0) hi--;    if(test(hi)) cout<<hi*n<<endl;    else cout<<0<<endl;}


0 0
原创粉丝点击