URAL 1203 Scientific Conference(贪心 || DP)
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)相关推荐
- Codeforces Round #699 (Div. 2) E.Sorting Books(贪心+DP / 线段树)超高质量题解,看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 E - Sorting Books 一排书架上有 nnn 本书排成一排,每本书上有一个颜色 aia_i ...
- 【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp
题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚 ...
- 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 ...
- HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)
开始还觉得是贪心呢... 给你三类积木叫你叠楼房,给你的每个积木包括四个值:长 宽(可以互换) 高 类型d d=0:你只能把它放在地上或者放在 长 宽 小于等于 自己的积木上面 d=1:你只能把 ...
- 【BZOJ4069】【APIO2015】巴厘岛的雕塑 [贪心][DP]
巴厘岛的雕塑 Time Limit: 10 Sec Memory Limit: 64 MB [Submit][Status][Discuss] Description 印尼巴厘岛的公路上有许多的雕塑 ...
- 杭电oj1257最少拦截系统—贪心/dp最大递增子序列
附上题目链接:杭电oj1257 这个题目有动态规划和贪心两种解决方式. 贪心法1: 对于导弹我们知道只可以从大到小的反导,一个系统必须从大到小排列.那么我们就可以选择从最高的那个导弹入手,往右找仅次于 ...
- CF1155D Beautiful Array 贪心,dp
CF115DBeautiful Array 题目大意:给一个有n个元素的a数组,可以选择其中一个区间的所有数都乘上x,也可以不选,求最大子序列和. 如果没有前面的操作,就是只求最大子序列和,我们都知道 ...
- CodeForces - 1481E Sorting Books(贪心+dp)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,每次操作可以将任意一本书放到序列的末尾,问最少需要操作多少次,才能使得相同的数字挨在一起 题目分析:不难看出,对每个位置的数都操作一次,是 ...
- 2020ICPC(小米邀请赛2) - Knapsack(贪心+dp)
题目链接:点击查看 题目大意:给出 n 个物品,每个物品都有体积和价值,现在问容量为 m 的背包最多可以装下多少价值的物品 题目分析:本题正解应该是斜率优化dp,然鹅看了大佬们的博客讲解后,感觉不是自 ...
最新文章
- 36晋级12第四场:评委弃权 无人晋级
- 学习 LLVM(14) SmallPtrSet
- Backbone Model——数据模型
- 转 CentOS下php安装mcrypt扩展
- UIImageJPEGRepresentation和UIImagePNGRepresentation
- 阿里开源支持10万亿模型的自研分布式训练框架EPL(EasyParallelLibrary)
- centos6.2系统下安装配置FastDFS步骤
- 谷歌浏览器整个网页截图方法
- python代码缩进中是否支持tab键和空格混用_python自测——编码规范
- Matlab之四阶龙格—库塔法方法:解常微分初值问题
- 通过Windows的bat方式一键给计算机网卡替换IP地址
- 深入理解 JVM 垃圾回收机制及其实现原理
- 2.2 matlab矩阵变换(对角阵、三角阵、矩阵的转置、矩阵的旋转、矩阵的翻转和矩阵求逆)
- 不是一个PDF文件或该文件已损坏
- 扫描版pdf重排 linux,【Kindle Pdf Viewer中文安装教程】支持扫描版PDF重排及其他主流文件格式...
- iMac 27 2011款增加2块SSD硬盘,保留原机械硬盘,共3块硬盘,升级cpu,修显卡,安装macOS及Win10双系统
- 什么是 SDN?SDN 和 NFV 有什么区别?
- 计算机显示器的三原色是,显示器参数看不懂?看完你就明白啦!
- postGresql关键字字段重名
- ===(js表示恒等于及类型相同和值都相同)
热门文章
- 用XP做服务器突破10人限制
- 在遗传算法中出现等式约束_排序算法中的稳定性-等式的处理
- node aws 内存溢出_如何使用Node.js和AWS快速创建无服务器RESTful API
- c专家编程/c陷阱_如何避免常见的初学者陷阱并像专家一样开始编码
- 计算机组成 试题,计算机组成典型试题及答案
- 7软件质量与测试规范
- navicat for mysql如何在更新记录时自动记录更新时间
- java hanoi_Hanoi问题java解法
- 信科c语言实验程序修改题_豆瓣评分 9.3,史上最好的 C 语言著作,竟然翻车了.........
- 云南实现手机自主补(换)领居民身份证