2882: 美食节之感恩父母
来源:互联网 发布:手机淘宝店铺怎么分享 编辑:程序博客网 时间:2024/04/29 04:42
描述
虽然美食节的食品又多又好吃,但是在大家心目中,最好吃的还是亲爱的爸爸妈妈煮的爱心饭菜,可能没有美食节种类那么多,但是与饭菜一起煮进去的还有父母浓浓的爱啊
我们acm队也是一个大家庭,xzc也会煮菜哦,请设想假如某天acm队的成员一起到crq (crq是我们集训队的家长哈)家里吃饭去,crq家有材料若干,xzc会做m种菜,但是每种菜所需的材料种类数量是不一样的,现在把crq家的材料都排成一排从0开始标记好,xzc做菜时就在这排标记好材料里面抽一段用来做菜,现在xzc要好好表现了,请你求xzc总共能做多少种菜?
输入
输入数据有多组,每组数据第一行有一个数m, m代表xzc会做m种菜;
接下来有m行,每行两个正整数a,b,代表这种菜所需的材料是截取标记好的crq家的材料中从a至b的材料;当m等于0的时候结束循环
输出
每组数据输出一个max,max代表xzc在这次acm聚餐时能做出来的菜最多有多少种。
样例输入
样例输出
思路就是同一段的食材是不可以重复使用的。所以我们要尽量的让同样多的食材做出更多的菜。
所以我们就想到用贪心来做。先以结束的食材编号为主要的依据进行升序排序,当结束食材的变号相同是以开始的食材的编号为依据进行升序排序。
然后要尽可能多的选择出来食材去做菜。
代码如下:
#include<stdio.h>
#include<algorithm>
using namespace std;
struct A
{
int a,b;
}zi[1000];
bool cmp(A x,A y)
{
if(x.b==y.b)return x.a<y.a;
else return x.b<y.b;
}
int main()
{
int m,a,b,i,j;
while(scanf("%d",&m),m)
{
int c=0;
for(i=0;i<m;i++)
scanf("%d%d",&zi[i].a,&zi[i].b);
sort(zi,zi+m,cmp);
for(i=1,j=0,c=1;i<m;i++)
{
if(zi[i].a>=zi[j].b)
{
c++;
j=i;
}
}
printf("%d\n",c);
}
}
- 2882: 美食节之感恩父母
- 感恩父母
- 感恩父母
- 感恩父母,感谢生活
- 感恩父母,感谢生活
- 懂得感恩自己的父母
- (3643) 美食节之羊肉串
- 2880: 美食节之羊肉串
- 兄弟连第一届非官方感恩父母活动
- 美食节
- 感恩父母,不要等到子欲养而亲不待
- 美食节之破译密码得玩偶
- 父母之爱
- 感恩的心之感恩相册
- 满怀感恩之心
- 感恩之心
- 感恩之心
- 感恩之心
- IOS为图片添加手势的使用
- Android动画--PropertyAnimation
- HDU 2874 Connections between cities(LCA + RMQ)
- Error exporting print... Java heap space
- 九度考研机试教程 15-题目1432:叠筐 排版题
- 2882: 美食节之感恩父母
- [DROOLS]规则引擎drools常用依赖--Gradle
- xcode 的编译时提醒报错,但却没有提示错误的位置
- 3D打印切片软件Cura及CuraEngine原理分析
- GDI+(C#)
- android 日期选择器
- UIImagePickerController详解
- 九度考研机试教程 21-1433:FatMouse 贪心算法
- 黑马程序员--反射的理解