当前位置: 首页 > news >正文

洛谷 P1868 饥饿的奶牛

原题

题目描述

有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字。

现用汉语翻译为:

有 N 个区间,每个区间x,y 表示提供的x∼y 共y−x+1 堆优质牧草。你可以选择任意区间但不能有重复的部分。

对于奶牛来说,自然是吃的越多越好,然而奶牛智商有限,现在请你帮助他。

输入格式

第一行一个整数 N。

接下来 N 行,每行两个数x,y,描述一个区间。

输出格式

输出最多能吃到的牧草堆数。

输入输出样例

输入 #1

3
1 3
7 8
3 4

输出 #1

5

说明/提示

解题思路

动态加二分。

构造一个结构体存储元素,然后按照r从小到大排序。

dp[i]=max(dp[i-1],dp[lower_bound(1,i,cow[i].l)]+cow[i].val)

lower_bound(二分查找) 最后一个没有和cow[i].l相交的元素,寻找到后取最大的那个区间。

AC代码

#include<iostream>
#include<algorithm>
using namespace std;
const int N=1.5e5+5; 
struct Cow{int l,r;int val;bool operator <(const Cow b){return r<b.r;}
}cow[N];
int n,dp[N];
int lower_bound(int l,int r,int k){int ans=0;while(l<r){int mid=(l+r)>>1;if(cow[mid].r<k)  {ans=mid;l=mid+1;}else r=mid;}return ans;
}
int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d %d",&cow[i].l,&cow[i].r);cow[i].val=cow[i].r-cow[i].l+1; }sort(cow+1,cow+n+1);for(int i=1;i<=n;i++){dp[i]=max(dp[i-1],dp[lower_bound(1,i,cow[i].l)]+cow[i].val);}printf("%d",dp[n]);return 0;
} 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 实现一个全栈模糊搜索匹配的功能
  • 时空预测又爆火了!新SOTA实现零样本精准预测
  • C语言《智能自平衡小车,实现平衡功能的基础上,加入了超声波避障、超声波跟随、蓝牙遥控等功能》+源代码+文档说明
  • MySQL —— 初始数据库
  • 智能闹钟和普通闹钟有什么区别
  • finalshell连接kali-Linux失败问题略谈
  • 书单 | 大模型的书那么多,如何快速选到适合自己的那一本?来,教你!
  • 论文翻译:Large Language Models in Education: Vision and Opportunities
  • 大数据核心概念与技术架构简介
  • CSS雷达光波效果(前端雷达光波效果)
  • STM32F401VET6 PROTEUS8 ILI9341 驱动显示及仿真
  • Unity材质球自动遍历所需贴图
  • Java 常用API基础
  • 手把手使用 SVG + CSS 实现渐变进度环效果
  • python_能转小数的话就保留2位小数、百分数也保留2位小数
  • $translatePartialLoader加载失败及解决方式
  • ES6 学习笔记(一)let,const和解构赋值
  • GitUp, 你不可错过的秀外慧中的git工具
  • JS专题之继承
  • Linux快速复制或删除大量小文件
  • Map集合、散列表、红黑树介绍
  • Mysql5.6主从复制
  • Redux系列x:源码分析
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • underscore源码剖析之整体架构
  • Zsh 开发指南(第十四篇 文件读写)
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 记一次和乔布斯合作最难忘的经历
  • 少走弯路,给Java 1~5 年程序员的建议
  • 项目实战-Api的解决方案
  • 小试R空间处理新库sf
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • python最赚钱的4个方向,你最心动的是哪个?
  • raise 与 raise ... from 的区别
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #{}和${}的区别?
  • #include<初见C语言之指针(5)>
  • #php的pecl工具#
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (Java入门)学生管理系统
  • (rabbitmq的高级特性)消息可靠性
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (笔记)M1使用hombrew安装qemu
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (面试必看!)锁策略
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (源码分析)springsecurity认证授权
  • (转)ObjectiveC 深浅拷贝学习
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • . NET自动找可写目录
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献