codevs 1345 饥饿的奶牛
1345 饥饿的奶牛
John养了若干奶牛,每天晚上奶牛都要进食。由于条件比较简陋,并不一定所有奶牛都能吃到食物。奶牛的进食方式是这样的:John有n个食桶(1<=n<=2000),分别编号为1..n。这些食桶被按照编号排成一行。John将奶牛们分成若干组,每组奶牛总是呆在一起进食的,每组奶牛会提出要求——他们需要吃第start到第end桶中的食物。可能存在若干组奶牛都要吃同一个桶中的食物,从而就产生了冲突,这时John只能满足其中一组的要求,另一些组就只能饿肚子了。
John当然不想让奶牛都饿肚子,所以他希望根据奶牛们提出的请求,满足其中一些组的要求,使得最多的食桶被奶牛食用。这个难题困扰着John,他希望得到你的帮助。
从文本文件hunger.in中读入数据。
第一行一个整数n,表示奶牛的组数。(1<=n<=1000)
第2~n+1行,每行两个整数start和end,描述了一组奶牛提出的请求。
一个整数,表示最多有多少个食桶可以被食用。
(满足第1组和第2组奶牛的要求,这样1~3号和7~8号这5个食桶可以被食用)
3
1 3
7 8
3 4
5
/*类似于线段覆盖的题目,不同的是端点不可以重合,但是仍然是要求线段最长*/
#include<cstdio>
#include<iostream>
using namespace std;
struct Group{
int start,end,len;
};
#include<algorithm>
Group group[];
int n;
int cmp(Group a,Group b)
{
return a.end<b.end;
}
void input()
{
scanf("%d",&n);
for(int i=;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+;
}
sort(group+,group+n+,cmp);
}
int dp[];
void DP()
{
dp[]=group[].len;
for(int i=;i<=n;++i)
for(int j=;j<=i-;++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 ;
}
codevs 1345 饥饿的奶牛的更多相关文章
- BZOJ1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛
1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 665 Solved: 419 ...
- BZOJ 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛( LIS )
裸的LIS ----------------------------------------------------------------- #include<cstdio> #incl ...
- dp进阶——饥饿的奶牛
饥饿的奶牛oj上n只有1000,过于水,O(n^2)的算法很容易水过,洛谷上这是一道提高加的题,很难啊,所以要好好拿来练习今天写博客再次复习一下,oi最怕遗忘了. 这道题呢实质是一个区间覆盖的dp,首 ...
- 题解 P1868 【饥饿的奶牛】
题目链接:P1868 饥饿的奶牛 题面 有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字. 现用汉语翻译为: 有N个区间,每个区间x,y表示提供的x~y共y-x+1堆优质牧 ...
- 洛谷P1868 饥饿的奶牛
P1868 饥饿的奶牛 题目描述 有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字. 现用汉语翻译为: 有N个区间,每个区间x,y表示提供的x~y共y-x+1堆优质牧草.你 ...
- 【BZOJ】1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛(lis)
http://www.lydsy.com/JudgeOnline/problem.php?id=1669 水题太严重 #include <cstdio> #include <cstr ...
- P1868 饥饿的奶牛
题目描述 有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字. 现用汉语翻译为: 有N个区间,每个区间x,y表示提供的x~y共y-x+1堆优质牧草.你可以选择任意区间但不能有 ...
- 【Luogu】P1868饥饿的奶牛(DP)
题目链接 话说我存一些只需要按照一个关键字排序的双元素结构体的时候老是喜欢使用链式前向星…… DP.f[i]表示前i个位置奶牛最多能吃到的草.转移方程如下: f[i]=f[i-]; f[i]=max( ...
- 洛谷1345 [Usaco5.4]奶牛的电信
题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相 ...
随机推荐
- linux下守护进程的创建
最近在学习linux c编程 看到了守护进程的创建,感觉很好玩, 测试环境ubuntu 15.04 下面贴出测试代码 #include <stdio.h> #include <std ...
- mysql主从复制、操作语句
授权 grant replication slave on *.* to slave@192.168.10.64 identified by "123456" 登录测试 mysql ...
- python基础===getattr()函数使用方法
getattr(object, name[,default]) 获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选.需要注意的是,如果是返回的对象的方法,返回的 ...
- sicily 1059. Exocenter of a Trian
Description Given a triangle ABC, the Extriangles of ABC are constructed as follows: On each side of ...
- 【LOJbeta round1】ZQC的手办
NOI2012-超级钢琴的升级版. 用线段树维护最小值及其出现位置,接下来就跟超级钢琴一个做法了. #include<bits/stdc++.h> #define N 500010 #de ...
- linux和性能相关的命令及系统性能诊断
常用的和性能有关的命令 Iostat/vmstat/top/mpstat/time/strace/ipcs/ipcrm/ifconfig/tethereal/netstat/free/uptime 关 ...
- 调用微信JS-SDK接口上传图片
最近要在微信上做个问卷调查,有个上传图片功能,折腾找了半天资料,都不好弄,最终打算调用微信提供的上传图片接口,实现上传图片功能!此功能最大的好处是可以在微信服务器上暂存图片,减少本地服务器图片的缓存, ...
- Restful Framework (二)
目录 一.认证 二.权限 三.限制访问频率 四.总结 一.认证(补充的一个点) 回到顶部 认证请求头 #!/usr/bin/env python # -*- coding:utf-8 -*- from ...
- OpenCL学习笔记(三):OpenCL安装,编程简介与helloworld
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. OpenCL安装 安装我不打算 ...
- Java Web学习脑图
Java Web学习脑图,从知乎上摘录,感谢知乎网友的分享.