P1204 [USACO1.2] 挤牛奶Milking Cows

原题链接

题解

细节颇多看代码

code

#include<bits/stdc++.h>
using namespace std;
struct unit
{
    int s,e;
}milk[5005];

bool cmp(unit a,unit b)
{
    return a.s<b.s;
}
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>milk[i].s>>milk[i].e;

    sort(milk+1,milk+1+n,cmp);

    int l=milk[1].s,r=milk[1].e,ans1=r-l,ans2=0;
    for(int i=2;i<=n;i++)
    {
        if(r<milk[i].s)
        {
            ans1=max(ans1,r-l);
            ans2=max(ans2,milk[i].s-r);
            l=milk[i].s;
        }
        r=max(r,milk[i].e);//r代表当前奶牛所在的集合中的最远右边界,当遇到断电时,r等于新右边界(一定比原r大)
    }

    ans1=max(ans1,r-l);//只有遇到断点时才会执行收获操作,假如连续到结尾都没遇到断点,这一段的值不会纳入答案里
    ans2=max(ans2,milk[n].s-r);
    cout<<ans1<<" "<<ans2;

    return 0;
}

posted @   纯粹的  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示