Scientific Conference

之前一直在刷计算几何,邀请赛连计算几何的毛都买见着,暑假这一段时间就做多校,补多校的题目,刷一下一直薄弱的DP。多校如果有计算几何一定要干掉-。-

题意:给你N个报告会的开始时间跟结束时间,问你做多可以听几场报告会。要求报告会之间至少间隔为1。

思路:其实是个活动安排问题,可以用贪心也可以用DP,贪心写起来会比较简单一些,因为练习DP,所以又用DP写了一遍。

贪心的话就是一个很简单的活动选择问题,从结束时间入手,找每次的最优选择。

 1 struct node{
 2     int b, e;
 3 } N[100005];
 4
 5 int cmp(node x, node y){
 6     if(x.e == y.e)
 7         return x.b < y.b;
 8     return x.e < y.e;
 9 }
10
11 int n;
12 int main()
13 {
14     scanf("%d", &n);
15     for(int i = 0; i < n; ++i){
16         scanf("%d%d", &N[i].b, &N[i].e);
17     }
18     sort(N, N+n, cmp);
19     int ans = 0;
20     int t = 0;
21     for(int i = 0; i < n; ++i)
22     {
23         if(N[i].b >= t)
24         {
25             ans++;
26             t = N[i].e+1;
27         }
28     }
29     printf("%d\n", ans);
30
31     return 0;
32 }

贪心

DP:

 1 struct node{
 2     int b, e;
 3 } N[100005];
 4
 5 int cmp(node x, node y){
 6     if(x.e == y.e)
 7         return x.b < y.b;
 8     return x.e < y.e;
 9 }
10
11 int n;
12 int dp[30005];
13 int k[30005];
14 int main()
15 {
16     scanf("%d", &n);
17     int last = -1;
18     for(int i = 0; i < n; ++i){
19         scanf("%d%d", &N[i].b, &N[i].e);
20         last = max(last, N[i].e);
21     }
22     sort(N, N+n, cmp);
23     for(int i = 0; i < n; ++i)
24     {
25         dp[N[i].e] = 1; ///记录结束时间是在
26         k[N[i].e] = N[i].b;///记录结束时间的活动对应的开始时间
27                            ///之前有排序所以选择会覆盖 会是最优的
28     }
29     for(int i = 1; i <= last; ++i)
30     {///DP时间
31         if(k[i]) ///如果当前时间点有结束的活动
32             dp[i] = max(dp[i-1], dp[k[i]-1]+1);
33         dp[i] = max(dp[i], dp[i-1]);///如果当前时间点没有结束的活动
34     }
35     printf("%d\n", dp[last]);
36
37     return 0;
38 }

DP

转载于:https://www.cnblogs.com/Silence-AC/p/3863872.html

URAL 1203 Scientific Conference(贪心 || DP)相关推荐

  1. Codeforces Round #699 (Div. 2) E.Sorting Books(贪心+DP / 线段树)超高质量题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 E - Sorting Books 一排书架上有 nnn 本书排成一排,每本书上有一个颜色 aia_i ...

  2. 【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp

    题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚 ...

  3. bzoj1814 Ural 1519 Formula 1(插头dp模板题)

    1814: Ural 1519 Formula 1 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 924  Solved: 351 [Submit][S ...

  4. HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)

    开始还觉得是贪心呢...  给你三类积木叫你叠楼房,给你的每个积木包括四个值:长 宽(可以互换) 高 类型d  d=0:你只能把它放在地上或者放在 长 宽 小于等于 自己的积木上面  d=1:你只能把 ...

  5. 【BZOJ4069】【APIO2015】巴厘岛的雕塑 [贪心][DP]

    巴厘岛的雕塑 Time Limit: 10 Sec  Memory Limit: 64 MB [Submit][Status][Discuss] Description 印尼巴厘岛的公路上有许多的雕塑 ...

  6. 杭电oj1257最少拦截系统—贪心/dp最大递增子序列

    附上题目链接:杭电oj1257 这个题目有动态规划和贪心两种解决方式. 贪心法1: 对于导弹我们知道只可以从大到小的反导,一个系统必须从大到小排列.那么我们就可以选择从最高的那个导弹入手,往右找仅次于 ...

  7. CF1155D Beautiful Array 贪心,dp

    CF115DBeautiful Array 题目大意:给一个有n个元素的a数组,可以选择其中一个区间的所有数都乘上x,也可以不选,求最大子序列和. 如果没有前面的操作,就是只求最大子序列和,我们都知道 ...

  8. CodeForces - 1481E Sorting Books(贪心+dp)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,每次操作可以将任意一本书放到序列的末尾,问最少需要操作多少次,才能使得相同的数字挨在一起 题目分析:不难看出,对每个位置的数都操作一次,是 ...

  9. 2020ICPC(小米邀请赛2) - Knapsack(贪心+dp)

    题目链接:点击查看 题目大意:给出 n 个物品,每个物品都有体积和价值,现在问容量为 m 的背包最多可以装下多少价值的物品 题目分析:本题正解应该是斜率优化dp,然鹅看了大佬们的博客讲解后,感觉不是自 ...

最新文章

  1. 36晋级12第四场:评委弃权 无人晋级
  2. 学习 LLVM(14) SmallPtrSet
  3. Backbone Model——数据模型
  4. 转 CentOS下php安装mcrypt扩展
  5. UIImageJPEGRepresentation和UIImagePNGRepresentation
  6. 阿里开源支持10万亿模型的自研分布式训练框架EPL(EasyParallelLibrary)
  7. centos6.2系统下安装配置FastDFS步骤
  8. 谷歌浏览器整个网页截图方法
  9. python代码缩进中是否支持tab键和空格混用_python自测——编码规范
  10. Matlab之四阶龙格—库塔法方法:解常微分初值问题
  11. 通过Windows的bat方式一键给计算机网卡替换IP地址
  12. 深入理解 JVM 垃圾回收机制及其实现原理
  13. 2.2 matlab矩阵变换(对角阵、三角阵、矩阵的转置、矩阵的旋转、矩阵的翻转和矩阵求逆)
  14. 不是一个PDF文件或该文件已损坏
  15. 扫描版pdf重排 linux,【Kindle Pdf Viewer中文安装教程】支持扫描版PDF重排及其他主流文件格式...
  16. iMac 27 2011款增加2块SSD硬盘,保留原机械硬盘,共3块硬盘,升级cpu,修显卡,安装macOS及Win10双系统
  17. 什么是 SDN?SDN 和 NFV 有什么区别?
  18. 计算机显示器的三原色是,显示器参数看不懂?看完你就明白啦!
  19. postGresql关键字字段重名
  20. ===(js表示恒等于及类型相同和值都相同)

热门文章

  1. 用XP做服务器突破10人限制
  2. 在遗传算法中出现等式约束_排序算法中的稳定性-等式的处理
  3. node aws 内存溢出_如何使用Node.js和AWS快速创建无服务器RESTful API
  4. c专家编程/c陷阱_如何避免常见的初学者陷阱并像专家一样开始编码
  5. 计算机组成 试题,计算机组成典型试题及答案
  6. 7软件质量与测试规范
  7. navicat for mysql如何在更新记录时自动记录更新时间
  8. java hanoi_Hanoi问题java解法
  9. 信科c语言实验程序修改题_豆瓣评分 9.3,史上最好的 C 语言著作,竟然翻车了.........
  10. 云南实现手机自主补(换)领居民身份证