题意:给出n个区间[a,b),有2个记录器,每个记录器中存放的区间不能重叠。求2个记录器中最多可放多少个区间。

解法:贪心。只有1个记录器的做法详见——关于贪心算法的经典问题(算法效率 or 动态规划)。而对于2个,就是在1个的基础上(按 bi 排序,选第一个与之前没有相交的区间)维护2个值,注意要好好for循环遍历一次O(n),若想着用while直接跳过一些区间很容易出错!!!另外,遍历时要先考虑能否把当前的区间接在之前右端点较右的记录器。

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<iostream>
 5 #include<algorithm>
 6 using namespace std;
 7
 8 const int N=155;
 9 struct node{int l,r;}a[N];
10
11 int read()
12 {
13     char ch=getchar();
14     int x=0;
15     while (ch<'0'||ch>'9') ch=getchar();
16     while (ch>='0'&&ch<='9') x=x*10+ch-'0', ch=getchar();
17     return x;
18 }
19 bool cmp(node x,node y) {return x.r<y.r;}
20 int main()
21 {
22     int n=read();
23     for (int i=1;i<=n;i++)
24     {
25       a[i].l=read(),a[i].r=read();
26       if (a[i].l>a[i].r) {int t;t=a[i].l,a[i].l=a[i].r,a[i].r=t;}
27     }
28     sort(a+1,a+1+n,cmp);
29     int cnt=0,x=0,y=0;
30     for (int i=1;i<=n;i++)
31     {
32       if (x<=a[i].l) cnt++,x=a[i].r;
33       else if (y<=a[i].l) cnt++,y=a[i].r;
34       if (x<y) {int tmp;tmp=x,x=y,y=tmp;}
35     }
36     printf("%d\n",cnt);
37     return 0;
38 }

转载于:https://www.cnblogs.com/konjak/p/6044643.html

【bzoj 3433】{Usaco2014 Jan} Recording the Moolympics(算法效率--贪心)相关推荐

  1. 【uva 1617】Laptop(算法效率--贪心,2种理解)

    题意:有N条长度为1的线段,要求使每条线段分别在相应区间,且"空隙"数目最小.输出"空隙"数.(1≤N≤100000) 解法:(P.S.我这题竟做了2个多小时, ...

  2. BZOJ 3430: [Usaco2014 Jan]Ski Course Rating(并查集+贪心)

    题面 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 136 Solved: 90 [Submit][Status][Discuss] Descript ...

  3. BZOJ 3432: [Usaco2014 Jan]Cross Country Skiing (二分+染色法)

    还是搜索~~可以看出随着D值的增大能到达的点越多,就2分d值+染色法遍历就行啦~~~ CODE: #include<cstdio> #include<iostream> #in ...

  4. bzoj 1634: [Usaco2007 Jan]Protecting the Flowers 护花(贪心排序)

    1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 824  S ...

  5. 【uva 1614】Hell on the Markets(算法效率--贪心)

    题意:有一个长度为N的序列A,满足1≤Ai≤i,每个数的正负号不知.请输出一种正负号的情况,使得所有数的和为0.(N≤100000) 解法:(我本来只想静静地继续做一个口胡选手...←_← 但是因为这 ...

  6. AI算法效率每16个月提速一倍,算力革命超越摩尔定律

    AI算法效率每16个月提速一倍,算力革命超越摩尔定律 2020-05-06 22:10:26 作者 | 蒋宝尚 编辑 | 丛 末 摩尔定律预测芯片性能每18个月翻一倍,那 AI 算法性能多少个月翻一番 ...

  7. MIT新研究:过去80年,算法效率提升到底有多快?

    来源:MIT,新智元 编辑:David [导读]随着摩尔定律走向终结,靠提升计算机硬件性能可能越发难以满足海量计算的需要,未来的解决之道在于提升算法的效率.MIT的这篇新论文总结了过去80年来,算法效 ...

  8. 第四课:算法效率的度量和存储空间需求

    第四课 本课主题: 算法效率的度量和存储空间需求 教学目的: 掌握算法的渐近时间复杂度和空间复杂度的意义与作用 教学重点: 渐近时间复杂度的意义与作用及计算方法 教学难点: 渐近时间复杂度的意义 授课 ...

  9. 超摩尔定律!OpenAI官宣AI算法效率每16个月翻一番

    OpenAI今天宣布将开始追踪机器学习模型的效率,并对AI算法演进的情况进行定量追踪,结果显示算法改进效率吊打摩尔定律. 为了启动这一进程,Open AI发表了一份分析报告,开篇即用数据展示了算法演进 ...

  10. 编程方法学23:搜索排序与算法效率分析

    前言 本笔记是斯坦福公开课,编程方法学的学习笔记. 总体而言,这门课讲了很多很基础的东西,具有很强的通用性. 正文 本次的笔记对应的是第二十三节课,这堂课是助教来讲搜索排序与算法效率分析的知识. 1线 ...

最新文章

  1. Matlab与线性代数--矩阵的LU分解
  2. 互补性:从不同的角度思考同一个事物时,发现它同时具有不同甚至相互矛盾的性质...
  3. sqlAlchemy中的对象转换为dict
  4. WebSocket负载均衡
  5. nexus 7 arm linux,Nexus 7安装Ubuntu Touch
  6. delphi的接口support_学习到的关于Delphi的接口
  7. Linux日常运维管理技巧(一)监控系统状态、监控网卡流量、监控IO性能、查看系统进程、查看网络状态、Linux下抓包tcpdump、Linux网络相关、DNS配置
  8. 使用c#对xml文件进行解析 功能演示 161483724
  9. ssh 配置文件中 maxsessions 与 MaxStartups
  10. [Luogu1462]通往奥格瑞玛的道路
  11. MyEclipse添加Mybatis generator插件
  12. Flink DataStream 关联维表实战
  13. 微积分总结(数列与无穷级数)
  14. Word打开文件错误提示用文本恢复转换器打开文件
  15. MIKE 21 教程 2.5 水动力模块教学:涡粘系数(Eddy viscosity),河床阻力与曼宁系数(Bed Resistance)
  16. antares任务调度系统预研
  17. Python学习案例2——数独解题及出题程序
  18. python 绘图 实现图中为字体添加下标、上标
  19. 数据分析中的严谨问题
  20. 2 Robotics: Computational Motion Planning 第2+3+4周 课后习题解答

热门文章

  1. 一个高性能的key/value存储服务器 - Tarantool/Box
  2. 【莓闻】芮成钢专访黑莓CEO巴尔西利
  3. 中电信推大学生3G上网套餐
  4. Linux音频驱动-ALSA概述
  5. 华为的手册和官网视频,学习网络基础
  6. Linux内核部件分析 设备驱动模型之device-driver
  7. Linux 文件系统(一)---虚拟文件系统VFS----超级块、inode、dentry、file
  8. 3992. 树上有猴-AcWing题库
  9. 编写可靠shell脚本的八个建议
  10. collectionutils包_基于springframework的集合处理工具类CollectionUtils对常见对象查找包含转换操作...