P2255 [USACO14JAN]记录奥林比克
题目描述
农民约翰热衷于所有寒冷天气的运动(尤其是涉及到牛的运动), 农民约翰想录下尽可能多的电视节目。 为moolympics电视时间表由N个不同的节目 (1 < = n=150),每个具有指定的开始时间和结束时间。FJ 有一个双调谐器录音机,可以同时录制两个节目。 请帮助他确定他能录制的节目的最大数量。
输入输出格式
输入格式:
第1行:整数n。 第2行.. 1 + n:每行包含单个的开始和结束时间 程序(范围为0…1000000000的整数)。
输出格式:
仅一行,节目FJ可以记录的最大数量。
输入输出样例
6
0 3
6 7
3 10
1 5
2 8
1 9
4
一道很有意思的贪心题。
我们先把数据按a[i]排序,然后开两个变量m1、m2存b[i]的最小值和次小值,有以下三种情况:
- 读入一个a[i]>=m1,则 ans++;m1=min(m2,b[i]);m2=max(m2,b[i]);
- 读入一个a[i]<m1且b[i]<m1,则 m2=m1;m1=b[i];
- 读入一个a[i]<m1且m1<b[i]<m2,则 m2=b[i];
代码如下:
#include<iostream>
#include<string>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<stack>
#include<queue>
#include<algorithm>
#define maxn 1005
using namespace std; inline int read()
{
char c=getchar();
int x=,res=;
while(c<''||c>'')
{
if(c=='-')
x=-;
c=getchar();
}
while(c>=''&&c<='')
{
res=res*+(c-'');
c=getchar();
}
return x*res;
} struct node
{
int a,b;
}g[maxn];
int n,aa,bb,ans;
int m1,m2; bool cmp(node a,node b)
{
return a.a<b.a;
} int main()
{
n=read();
for(int i=;i<=n;i++)
{
aa=read();bb=read();
g[i].a=aa;g[i].b=bb;
}
sort(g+,g++n,cmp);
m1=min(g[].b,g[].b);
m2=max(g[].b,g[].b);
for(int i=;i<=n;i++)
{
if(g[i].a>=m1)
{
ans++;
m1=min(m2,g[i].b);
m2=max(m2,g[i].b);
}
else
{
if(g[i].b<m1)
{
m2=m1;
m1=g[i].b;
}
else if(g[i].b<m2)
{
m2=g[i].b;
}
}
}
cout<<ans+;
return ;
}
为什么说这题很有意思呢?那是因为这题就是在只有一个录音机的基础上又加上了一个,另外我这里还有一个大胆的想法,如果把录音机的数目改成3个、4个甚至说m个,又该怎么做呢?有人可能会说不就是多开几个变量吗?但是如果分析一下,就会发现随着录音机数目的增多,所有可能出现的情况也会随之增多,如果把这些情况一一列举出来显然不现实,然而我自己也不会做呀,那就先把问题放在这里好了,说不定以后还可以出一道毒瘤题。
P2255 [USACO14JAN]记录奥林比克的更多相关文章
- P2255 [USACO14JAN]记录奥林比克Recording the M…
P2255 [USACO14JAN]记录奥林比克Recording the M… 题目描述 Being a fan of all cold-weather sports (especially tho ...
- ITWorld:2014年全球最杰出的14位编程天才
近日,ITWorld 整理全球最杰出的 14 位程序员,一起来看下让我们膜拜的这些大神都有哪些?(排名不分先后) 1.Jon Skeet 个人名望:程序技术问答网站 Stack Overflow 总排 ...
- TP5学习记录(Model篇)
ThinkPHP 数据库操作 数据库连接 #在config/database.php设置数据库连接参数或者利用Db::connect()方法设置数据库连接 /* * public static fun ...
- 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL
在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...
- nginx配置反向代理或跳转出现400问题处理记录
午休完上班后,同事说测试站点访问接口出现400 Bad Request Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...
- Kali对wifi的破解记录
好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...
- 2015 西雅图微软总部MVP峰会记录
2015 西雅图微软总部MVP峰会记录 今年决定参加微软MVP全球峰会,在出发之前本人就已经写这篇博客,希望将本次会议原汁原味奉献给大家 因为这次是本人第一次写会议记录,写得不好的地方希望各位园友见谅 ...
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- 我是如何在SQLServer中处理每天四亿三千万记录的
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...
随机推荐
- Xshell报错“The remote SSH server rejected X11 forwarding request.”
Xshell报错“The remote SSH server rejected X11 forwarding request.” 2012年12月17日 ⁄ Linux⁄ 共 218字 ⁄ 字号 小 ...
- 高斯消元part2
今天整一整高斯消元的模板,正经的 高斯消元主要用于解n元一次线性方程组与判断是否有解 主要思想? 就是高斯消元啊 主要思想是理想状态下消为每行除最后一项外只有一个1,并且每行位置互异,具体看下面. 这 ...
- MySql自动备份shell
MySql黑屏备份是每个运维工程师必备的技能,以下是MySQL自动备份脚本: #/bin/bash#This is mysql backup shell on 2019/4/28 BAKUP_DIR= ...
- Python3开发过程常见的异常(最近更新:2019-04-26)
持续更新中... 常见异常解决方案 1.Base Python3.7环境相关:https://www.cnblogs.com/dotnetcrazy/p/9095793.html 1.1.Indent ...
- VS2010查看源码对应的汇编语言
在学习c++中const关键字的过程中,经常会看到各种寄存器.汇编指令分析,像下面的图这样 左图是g++中反汇编的效果,右图是vs中反汇编的效果. 如果我们想要查看源码所对应的汇编语言,应该怎么操作呢 ...
- JavaScript中new实现原理
JavaScript中new实现原理 1.创建一个空对象 obj 2.将该对象 obj 的原型链 __proto__ 指向构造函数的原型 prototype, 并且在原型链 __proto__ 上设置 ...
- yarn安装使用
npm install yarn -g // 到指定文件夹 yarn init // 生成package.json文件 yarn init报错 Can't answer a question unle ...
- Ceph rdb
Ceph 独一无二地用统一的系统提供了对象.块.和文件存储功能,它可靠性高.管理简便.并且是自由软件. Ceph 的强大足以改变公司的 IT 基础架构.和管理海量数据. Ceph 可提供极大的伸缩性— ...
- linux环境下安装lnmp出现php安装失败
找到lnmp1.5/include/version.sh文件打开修改 #Freetype_Ver='freetype-2.7' 为 #Freetype_Ver='freetype-2.9'即可
- Haproxy 安装及配置
Haproxy介绍 HAProxy是一个特别适用于高可用性环境的TCP/HTTP开源的反向代理和负载均衡软件.实现了一种事件驱动,单一进程模型,支持非常大的并发连接,是因为事件驱动模型有更好的资源和时 ...