是一道很经典的选择不相交区间的问题。

关于选择不相交区间,可以参考刘汝佳。也可以参考:http://blog.csdn.net/dgq8211/article/details/7534488

以及模板代码:

 #include <stdio.h>
#include <algorithm>
using namespace std;
struct Extent
{
int a,b;
bool operator < (const Extent& S)const
{
return b < S.b;
}
}A[];
int main()
{
int z,n,cnt,end;
scanf("%d",&z);
while(z--)
{
cnt = ;
end = -;
scanf("%d",&n);
for(int i=;i<n;i++)
scanf("%d%d",&A[i].a,&A[i].b);
sort(A,A+n);
for(int i=;i<n;i++)
{
if(end < A[i].a)
{
end = A[i].b;
cnt++;
}
}
printf("%d\n",cnt);
}
return ;
}

所以关于本题,我们也可以设两个变量:count和now_end,表示贪心过程的计数器与每一步贪心时end位置。

当然需要注意的是,这题里,两个区间可以的端点可以共用,所以 if(end<a[i].a) 这句判断语句要多加一个“=”

 #include<cstdio>
#include<algorithm>
#define INF 0x3f3f3f3f
using namespace std;
struct Sect{
int l,r;
}sect[];
int n,ne,cnt;
bool cmp(Sect a,Sect b)
{
if(a.r==b.r) return a.l<b.l;
return a.r<b.r;
}
int main()
{
while(scanf("%d",&n) && n!=)
{
for(int i=;i<=n;i++) scanf("%d%d",&sect[i].l,&sect[i].r);
sort(sect+,sect+n+,cmp);
//printf("\n"); for(int i=1;i<=n;i++) printf("%d %d\n",sect[i].l,sect[i].r);
cnt=;
ne=-INF;
for(int i=;i<=n;i++)
{
if(ne<=sect[i].l)
{
ne=sect[i].r;
cnt++;
}
}
printf("%d\n",cnt);
}
}

那个时候刚入ACM大坑的时候,比较懵逼,学贪心感觉没学到家,趁现在赶快复习巩固一下(逃

HDU 2037 - 今年暑假不AC - [经典 选择不相交区间 问题]的更多相关文章

  1. HDU 2037 今年暑假不AC(贪心,区间更新,板子题)

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  2. hdu 2037 今年暑假不AC

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  3. hdu 2037 今年暑假不AC (java)

    问题: 此题为贪心算法入门,思路是先将各个时间段依照结束时间进行排序(按结束越早遍历.节目愈多), 再从第一个节目開始,假设下一节目開始时间大于上一节目的開始时间则进行该节目.依次递推. 输入时,要求 ...

  4. HDU 2037 今年暑假不AC (贪心)

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  5. HDU 2037 今年暑假不AC(贪心)

    今年暑假不AC Problem Description “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了 ...

  6. HDU 2037 今年暑假不AC ( 起始与终止时间 【贪心】)

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  7. HDU - 2037 今年暑假不AC 贪心(求序列中不重叠子序列的最大值问题)

    HDU2037 今年暑假不AC  贪心算法 大意: 每次测试数据输入一个n,然后输入n对的电视节目播放时间:开始时间及结束时间, 求这个人能看的最多的完整的节目数. 解题思路: 对于这道解题,是对每个 ...

  8. HDU 2037 今年暑假不AC【贪心】

    解题思路:即为给出一个总长度确定的区间,再输入不同的子区间,求在这个总区间里面包含的不相交的子区间最多有多少个. 可以由最特殊的情况来想,即给出的这些子区间现在都不相交,比如 ----- (1,3)  ...

  9. HDU 2037 今年暑假不AC (区间贪心)

    题意:又是中文题... 析:先说一下区间贪心的一个定理,选择不相交的区间:数轴上有n个开区间(ai, bi).选择尽量多的区间,使得这些区间两两不相交,贪心策略是,一定是选bi小的.(想一下为什么). ...

随机推荐

  1. Spring-Mybatis --- 配置SqlSessionFactoryBean,整合Spring-Mybatis

    要利用Mybatis首先是需要导入mybatis-x.x.x.jar,其次,要整合Spring和Mybatis需要导入mybatis-spring-x.x.x.jar. JAR : mybatis-x ...

  2. json_encode让URL内容斜杠/不转义

    同事在开发接口的时候根据接口提示要求传参一个字符串json,该json格式中有URL数组,按照json_encode编码后总发现 http://变成了 http:\/\/  .URL的斜杠自动的被转义 ...

  3. iOS开发-NSDictionary

    判断一个字典中是否存在某个key,有两种方法: 方法一: if ([dictionary allKeys] containsObject: key]){ // cotains key operatio ...

  4. [原]如何为SqlServer2008数据库分配用户

    前言: 当一个项目完成后,为了数据安全,总会对该项目的数据库分配一个用户,应该说总会创建一个用户来管理这个数据库,并且这个用户只能管理这个数据库.搞了好多次,每次都忘记怎么设置,所以写一篇博文记录一下 ...

  5. CWnd与HWND的区别与转换

    CWnd与HWND的区别与转换 2011-10-20 10:29:30|  分类: VC学习库|字号 订阅     一.区别HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是 ...

  6. erlang安装

    在linux安装erlang只能下载源码安装包来安装,可以到erlang官方网站上下载

  7. linux apache下虚拟主机配置方法

    假设VPS的IP是58.130.17.168,有两个域名指向该IP,分别是domain1.com, domain2.com, 修改/etc/httpd/conf/httpd.conf,在文件的最后加入 ...

  8. c# MVC Take的使用

    Take的使用 myPicture = dbContext.MyPictures.Where(u => u.Width == request.Width && u.Height ...

  9. python框架---->pymysql的使用

    这里面学习一下python中操作mysql的第三方库pymysql的使用.很多我们以为一辈子都不会忘掉的事情,就在我们念念不忘的日子里.被我们遗忘了. pymysql的简单使用 我们创建一张表来进行下 ...

  10. PCL—低层次视觉—关键点检测(Harris)

    除去NARF这种和特征检测联系比较紧密的方法外,一般来说特征检测都会对曲率变化比较剧烈的点更敏感.Harris算法是图像检测识别算法中非常重要的一个算法,其对物体姿态变化鲁棒性好,对旋转不敏感,可以很 ...