HDU 2037 - 今年暑假不AC - [经典 选择不相交区间 问题]
是一道很经典的选择不相交区间的问题。
关于选择不相交区间,可以参考刘汝佳。也可以参考: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",§[i].l,§[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 - [经典 选择不相交区间 问题]的更多相关文章
- HDU 2037 今年暑假不AC(贪心,区间更新,板子题)
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- hdu 2037 今年暑假不AC
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- hdu 2037 今年暑假不AC (java)
问题: 此题为贪心算法入门,思路是先将各个时间段依照结束时间进行排序(按结束越早遍历.节目愈多), 再从第一个节目開始,假设下一节目開始时间大于上一节目的開始时间则进行该节目.依次递推. 输入时,要求 ...
- HDU 2037 今年暑假不AC (贪心)
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- HDU 2037 今年暑假不AC(贪心)
今年暑假不AC Problem Description “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了 ...
- HDU 2037 今年暑假不AC ( 起始与终止时间 【贪心】)
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HDU - 2037 今年暑假不AC 贪心(求序列中不重叠子序列的最大值问题)
HDU2037 今年暑假不AC 贪心算法 大意: 每次测试数据输入一个n,然后输入n对的电视节目播放时间:开始时间及结束时间, 求这个人能看的最多的完整的节目数. 解题思路: 对于这道解题,是对每个 ...
- HDU 2037 今年暑假不AC【贪心】
解题思路:即为给出一个总长度确定的区间,再输入不同的子区间,求在这个总区间里面包含的不相交的子区间最多有多少个. 可以由最特殊的情况来想,即给出的这些子区间现在都不相交,比如 ----- (1,3) ...
- HDU 2037 今年暑假不AC (区间贪心)
题意:又是中文题... 析:先说一下区间贪心的一个定理,选择不相交的区间:数轴上有n个开区间(ai, bi).选择尽量多的区间,使得这些区间两两不相交,贪心策略是,一定是选bi小的.(想一下为什么). ...
随机推荐
- 泛泰A870K去掉相机快门声音的方法
首先ROOT手机,挂载读写,/system/media/audio/ui里面哈,把camera-click.ogg改成camera-click.ogg.bak就可以了 转载自:http://bbs.9 ...
- OpenSift源代码编译过程记录
本文记录了在CentOS6.5上编译Sift的开源实现OpenSift的编译过程,同一时候记录了编译过程中的几个问题. sift的理论已经有非常多了,以下会给出链接: 1.Requirements a ...
- RF-获取上个月份
验证1: case ${NowDate} set variable 20170103 ${year} set variable ${NowDate[0:4]} ${month} set variabl ...
- Java使用dom4j读取xml时报错:org.dom4j.DocumentException: Error on line 2 of document : Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence
1.Java使用dom4j读取xml时报错: org.dom4j.DocumentException: Error on line 2 of document : Invalid byte 2 of ...
- 编译Android 必须安装的库
要安装的库: 正在卸载 build-essential ...正在卸载 g++-multilib ...正在卸载 g++ ...正在卸载 gcc-multilib ...正在卸载 gcc ...正在卸 ...
- 深入浅出MFC——MFC骨干程序(四)
1. 熟记MFC类层次结构: 2. AppWizard可以为我们制作出MFC程序骨干: 3. Document/View支撑你的应用程序:Document/View的价值在于,这些MFC类已经把一个应 ...
- 【Java并发编程一】线程安全和共享对象
一.什么是线程安全 当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步及在调用代码代码不必作其他的协调,这个类的行为仍然是正确的,那么称这个类是线程安全的 ...
- php安装xdebug后var_dump输出没有格式化的问题
开发环境,装了一个xdebug扩展方便调试代码. 但是环境配置好了之后却发现xdebug加载成功了但是var_dump输出的内容却没有使用html格式化 这时想到估计是php.ini里面的某个输出的配 ...
- Android井字游戏(二)游戏界面
图片与代码可见书配套官网下载 1 棋盘 1.1 先将游戏界面所需的图片放于“drawable-xxhdpi”文件夹中,后缀xxhdpi表示超高密度. 然后将图片封装到drawable中一个名为til ...
- docker 快速搭建Nexus3
1.拉取镜像 docker pull sonatype/nexus3 2.启动容器 : -p : -p : -v /mnt/gv0/nexus-data:/nexus-data sonatype/ne ...