zoukankan      html  css  js  c++  java
  • codevs 1345 饥饿的奶牛

    1345 饥饿的奶牛

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 黄金 Gold
    题目描述 Description

    John养了若干奶牛,每天晚上奶牛都要进食。由于条件比较简陋,并不一定所有奶牛都能吃到食物。奶牛的进食方式是这样的:John有n个食桶(1<=n<=2000),分别编号为1..n。这些食桶被按照编号排成一行。John将奶牛们分成若干组,每组奶牛总是呆在一起进食的,每组奶牛会提出要求——他们需要吃第start到第end桶中的食物。可能存在若干组奶牛都要吃同一个桶中的食物,从而就产生了冲突,这时John只能满足其中一组的要求,另一些组就只能饿肚子了。

        John当然不想让奶牛都饿肚子,所以他希望根据奶牛们提出的请求,满足其中一些组的要求,使得最多的食桶被奶牛食用。这个难题困扰着John,他希望得到你的帮助。

    输入描述 Input Description

     从文本文件hunger.in中读入数据。

        第一行一个整数n,表示奶牛的组数。(1<=n<=1000)

        第2~n+1行,每行两个整数start和end,描述了一组奶牛提出的请求。

    输出描述 Output Description

     一个整数,表示最多有多少个食桶可以被食用。

    (满足第1组和第2组奶牛的要求,这样1~3号和7~8号这5个食桶可以被食用)

    样例输入 Sample Input

    3

    1 3

    7 8

    3 4

    样例输出 Sample Output

    5

    /*类似于线段覆盖的题目,不同的是端点不可以重合,但是仍然是要求线段最长*/
    #include<cstdio>
    #include<iostream>
    using namespace std;
    struct Group{
        int start,end,len;
    };
    #include<algorithm>
    Group group[1001];
    int n;
    int cmp(Group a,Group b)
    {
        return a.end<b.end;
    }
    void input()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;++i)
        {
            scanf("%d%d",&group[i].start,&group[i].end);
            if(group[i].start>group[i].end)
            swap(group[i].start,group[i].end);
            group[i].len=group[i].end-group[i].start+1;
        }
        sort(group+1,group+n+1,cmp);
    }
    int dp[1001];
    void DP()
    {
        dp[1]=group[1].len;
        for(int i=2;i<=n;++i)
          for(int j=1;j<=i-1;++j)
          if(group[i].start>group[j].end)
          dp[i]=max(dp[i],dp[j]+group[i].len);
    }
    int main()
    {
        input();
        DP();
        cout<<dp[n]<<endl;
        return 0;
    }
    View Code
  • 相关阅读:
    VS2010安装SP1后无法安装VS2010 SDK
    c#异常机制
    精简2003,安装后控制面板无效,点击控制面板就闪一下,返回桌面
    转载 Microsoft .NET Pet Shop 4 架构与技术分析
    JavaScript实用的一些技巧
    asp.net开发常用技巧收集
    Ajax+PHP+jQuery图片截图上传
    如何利用WINPE制作恢复光盘/恢复分区
    C/C++跨平台计时,精确到毫秒级别
    SetLocalInfo修改系统时间,立即生效
  • 原文地址:https://www.cnblogs.com/c1299401227/p/5305372.html
Copyright © 2011-2022 走看看