HDU2037 事件排序问题
题目要求:
“是的。”
“那你干什么呢?”
“看世界杯呀,笨蛋!”
“@#$%^&*%...”
确实如此,世界杯来了,球迷的节日也来了。预计非常多ACMer也会抛开电脑。奔向电视了。
作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其他的节目,比方新闻联播(永远不要忘记关心国家大事)、很6+7、超级女生,以及王小丫的《开心辞典》等等,如果你已经知道了全部你喜欢看的电视节目的转播时间表。你会合理安排吗?(目标是能看尽量多的完整节目)
解题思路:
看到这道题目之后。非常easy知道这是一个关于事件的排序问题。用start[i]和end[i来记录每一个事件i的開始和结束的时间。为了在之后对事件的结束时间的早晚进行排序。考虑用结构体来存储事件的起止时间,然后按事件的结束的早晚进行排序。贪心算法,让选择了一个事件之后,剩余的时间尽可能的大。因此优先选择结束时间早的事件。在对事件的结束时间按从早到晚的顺序拍好序后,就能够依照从前到后的考虑,增加了一个事件后。考虑下一个时间的開始时间是否大于(包括等于)当前事件的结束时间,假设是则增加到序列。
实现的代码:
# include <iostream>
# include <algorithm>
using namespace std; struct node
{
int start;
int end;
}Node[105]; int cmp(struct node a,struct node b)
{
return a.end<b.end;
return a.start<b.start;
} int main()
{
//freopen("input.txt","r",stdin);
int n;
while((scanf("%d",&n))!=EOF && n!=0)
{
int i,j;
for(i=0;i<n;i++)
{
scanf("%d%d",&Node[i].start,&Node[i].end);
}
sort(Node,Node+n,cmp);
int maxs=1;
int cur=0;
for(i=1;i<n;i++)
{
if(Node[i].start>=Node[cur].end)
{
maxs++;
cur=i;
}
}
printf("%d\n",maxs);
}
return 0;
}
HDU2037 事件排序问题的更多相关文章
- JNI详解---从不懂到理解
转载:https://blog.csdn.net/hui12581/article/details/44832651 Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 C ...
- [DataTable]控件排序事件中用DataView及DataTable排序
控件排序事件中用DataView及DataTable排序 文章分类:.net编程 在做ASP.NET页面开发时,经常要用到dataset(或者DataTable),绑定到DataGrid或GridVi ...
- 关于layui中tablle 渲染数据后 sort排序问题
最近在使用easyweb框架做后台管理,案例可见https://gitee.com/whvse/EasyWeb. 其中遇到了 sort排序问题, html代码:<table class=&quo ...
- 小工具:天气查询 Vs自定义设置 DevGridControl中GridView排序问题 小工具:火车票查询 小工具:邮件发送 小工具:截图&简单图像处理
小工具:天气查询 开发一个天气查询的工具主要由两步构成,一是数据的获取,二是数据的展示. 一.数据获取 数据获取又可以分为使用其它公司提供的API和手动抓取其它网站数据. 1. 某公司提供的AP ...
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- 关于 Chrome 浏览器中 onresize 事件的 Bug
我在写插件时用到了 onresize 事件,在反复地测试后发现该事件在 Chrome 及 Opera(内核基本与 Chrome 相同,以下统称 Chrome)浏览器打开时就会执行,这种情况也许不能算作 ...
- MVVM设计模式和WPF中的实现(四)事件绑定
MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- C++中的事件分发
本文意在展现一个C++实现的通用事件分发系统,能够灵活的处理各种事件.对于事件处理函数的注册,希望既能注册到普通函数,注册到事件处理类,也能注册到任意类的成员函数.这样在游戏客户端的逻辑处理中,可以非 ...
- 移动端IOS点击事件失效解决方案
解决方案 解决办法有 4 种可供选择: 1 将 click 事件直接绑定到目标元素(即 .target)上 2 将目标元素换成 <a> 或者 button 等可点击的元素 3 将 clic ...
随机推荐
- MVC系列学习(三)-EF的延迟加载
1.什么叫延迟加载 字面上可以理解为,一个动作本该立即执行的动作,没有立即执行 2.从代码上理解 static void Main(string[] args) { //执行该语句的时候,查看sql监 ...
- jQuery——入口函数
中文网 http://www.css88.com/jqapi-1.9/ 版本兼容问题 版本一:1.x版本,兼容IE678 版本二:2.x版本,不兼容IE678 入口函数区别 <script> ...
- 設置VS2015
減少VsHub的資源占用 VsHub在某些環境下會挂,原因見這個帖子 其作用簡述如下: First, the service that detects and auto-updates extensi ...
- 常见Android安装启动失败问题
1.INSTALL_FAILED_VERSION_DOWNGRADE版本过低2.Failed to install Funm_AND.apk on device 'QWOJLVR8KNHYA6NR': ...
- Centos6.6 安装基于系统认证的vsftp服务
一.介绍 vsftp是一款文件服务器软件,在文件共享,代码更新,文件备份中也是经常用到,以下是基本安装环境: 1)CentOS6.6 2)vsftpd-2.2.2 二.安装 $ yum install ...
- (转)Hibernate中的多表操作
http://blog.csdn.net/yerenyuan_pku/article/details/70556208 Hibernate中的多表操作 在实际开发中,我们不可能只是简简单单地去操作单表 ...
- PHP 之微信JSSDK类封装
<?php class JSSDK { private $appId; private $appSecret; public function __construct($appId, $appS ...
- nginx配置https转发的一个例子
server { listen ; #https默认端口不是80,而是443 server_name www.test.com; ssl on; ssl_certificate cert/.pem; ...
- ionic下拉多项选择
1.npm install ion-multi-picker --save 2.引入 import { MultiPickerModule } from 'ion-multi-picker'; imp ...
- 1 JSONP
一.什么是跨域访问举个栗子:在A网站中,我们希望使用Ajax来获得B网站中的特定内容.如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题.你可以理解为两个域名之间不能跨过域名来发送请求或者请求 ...