洛谷 P1868 饥饿的奶牛

news2024/9/22 5:23:27

原题

题目描述

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

现用汉语翻译为:

有 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;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dockerfile定制镜像 docker-compose编排容器

1 dockerfile dockerfile本质上是利用了Linux系统的挂载&#xff08;UnionFS&#xff09;&#xff0c;将多个目录挂载到同一目录下&#xff0c;实现镜像的层叠式结构&#xff0c;从而实现功能聚合。 1.1 一个最简单的程序 package mainimport "fmt"func main() {f…

【leetcode详解】覆盖所有点的最少矩形数目(C++思路详解)

思路详解&#xff1a; 0. 题目情境并未限制矩形高度&#xff0c;故矩形数目的判断只和点的横坐标有关 1. 为了不重不漏地考虑到所有点&#xff0c;故笔者选择首先将二维数组中的点按横坐标的大小排序 //说明&#xff1a;本来笔者以为需要自定义sort排序&#xff0c;后来发现…

智慧水务项目(三)django(drf)+angular 18 创建系统管理的用户、角色、部门、权限管理等model

一、说明 添加各model 添加requirement.txt中的库 添加env.py中的动态配置 二、env.py全文 import os from smartwater.settings import BASE_DIR# # # ************** mysql数据库 配置 ************** # # # # 数据库地址 DATABASE_ENGINE "django.db.backends.…

SQL查询注意事项

判断字符串长度要用函数CHAR_LENGTH(str)&#xff0c;他会返回字符串的长度&#xff0c;如果使用length(str)函数&#xff0c;在对中文字符或特殊字符时&#xff0c;返回的是在当前编码下该字符的字节数。如在mysql中的utf-8编码情况下&#xff0c;length(&#xffe5;)返回结果…

ASUS/华硕幻14 2021 GA401Q系列 原厂win10系统 工厂文件 带F12 ASUS Recovery恢复

华硕工厂文件恢复系统 &#xff0c;安装结束后带隐藏分区&#xff0c;一键恢复&#xff0c;以及机器所有驱动软件。 系统版本&#xff1a;windows10 原厂系统下载网址&#xff1a;http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意&#xff1a;仅支持以上型号专用…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-62 - 判断元素是否可操作

软件测试微信群&#xff1a;https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 有些页面元素的生命周期如同流星一闪&#xff0c;昙花一现。我们也不知道这个元素在没在页面中出现过&#xff0c;为了捕获这一美好瞬间&#xff0c;让其成为永恒。我们就来判…

HiFi桌搭的新选择,更符合发烧友使用习惯的飞傲K19

飞傲的便携设备很多人都用过&#xff0c;性价比很高&#xff0c;设计也很精致&#xff0c;并且功能上针对不同的需求也有丰富的选择&#xff0c;而在针对耳机的台式设备方面&#xff0c;飞傲同样非常有实力&#xff0c;我最近用了一款飞傲K19&#xff0c;这台设备不仅功能完备&…

ZYNQ SDK/Vitis undefined reference to `sin‘ wave.c

问题 ZYNQ SDK或者VItis在使用到sin函数时编译报错&#xff1a; undefined reference to sin wave.c问题解决&#xff1a; 右键点开C/C Build Settings 选项 在Settings 选项的Libraries 添加 m&#xff0c;点击OK

用Java手写jvm之模拟运行时数据区的虚拟机栈,局部变量表,操作数栈等

写在前面 下图是jvm的运行时数据区内存图&#xff1a; &#xff0c;本文要模拟的是虚拟机栈的相关内存结构的交互过程。 1&#xff1a;正文 因为我们这里模拟的是线程执行方法调用的过程&#xff0c;所以这里先来定义一个线程对象&#xff1a; public class Thread {// 程…

卸载Windows软件的正确姿势,你做对了吗?

前言 今天有小伙伴突然问我&#xff1a;她把软件都卸载了&#xff0c;但是怎么软件都还在运行&#xff1f; 这个问题估计很多小伙伴都是遇到过的&#xff0c;对于电脑小白来说&#xff0c;卸载Windows软件真的真的真的是一件很难的事情。所以&#xff0c;今天咱们就来讲讲&am…

springboot贫困生认定和资助管理系统-计算机毕业设计源码71367

摘要 本文介绍了一个基于Java的贫困生认定和资助管理系统的设计与实现。该系统旨在通过自动化、智能化的管理方式&#xff0c;提高贫困生认定和资助工作的效率与准确性。系统采用Java作为主要开发语言&#xff0c;结合了数据库技术和Web开发技术&#xff0c;实现了贫困生信息的…

运维之路----计算机基础

目录 ​编辑 一&#xff0c;计算机的组成 1&#xff0c;硬件 2&#xff0c;软件 二&#xff0c;计算机中的一些概念 冯诺依曼体系 二进制 摩尔定律 计算机的分类 1&#xff0c;按照规模分 2&#xff0c;按照功能分 拓扑 存储器的层次结构 并行与并发 缓存 操作系…

实例分割-Yolact/Yolact++训练自己数据集

前言 本文主要用于记录实例分割模型yolact和yolact的环境配置&#xff0c;以及成功训练自己数据集的整个过程~ 注意&#xff1a;这里要重点提醒一下&#xff0c;DCNv2对RTX系列不友好&#xff0c;我第一次使用4090服务器&#xff0c;编译持续有问题&#xff0c;被迫放弃&#…

C++|设计模式(八)|⭐️工厂模式?错!是工厂模式群!

本文内容全部来源于B站&#xff0c;仅做个人学习使用&#xff1a; 【工厂模式&#xff1f;错&#xff01;是工厂模式群&#xff01;】 在此之前&#xff0c;笔者曾经发过两篇关于工厂模式的博客&#xff1a; C&#xff5c;设计模式&#xff08;二&#xff09;&#xff5c;简单…

软件测试---Jmeter

一、简介 二、安装与启动 &#xff08;1&#xff09;安装 安装包&#xff1a;通过百度网盘分享的文件&#xff1a;jmeter环境.rar 链接&#xff1a;https://pan.baidu.com/s/1OB0IP3W7hqUjAGj_5F56sQ

vue3 自定义指令 自动获取节点的width 和 height

想写一个依赖库, 但是需要监听组件的width和height这些数据, 就找到了ResizeObserver这个方法,不想每次使用的时候都要创建和销毁 ResizeObserver, 索性就直接封装成为一个指令用来获取想要的信息, ResizeObserver对象上能够获取的信息还是非常多的, 除了width, height 还有 to…

一篇文章讲明白Ldraw(乐高模型)的格式文件说明

最好将文章内容保存下来 https://ldraw.org/article/218.html 乐高模型是非常有意思的模型&#xff0c;弄明白了它的模型构造&#xff0c;也就懂了三维模型的构造&#xff0c;原理都是相通的。

如何在行空板上运行 YOLOv10n?

YOLOv10介绍 YOLO&#xff08;You Only Look Once&#xff09;系列是当前最主流的端侧目标检测算法&#xff0c;由Joseph Redmon等人首次提出&#xff0c;并随着时间发展&#xff0c;已经推出了多个版本&#xff0c;每个版本“似乎”都在性能和速度上有所提升。 本文为大家介绍…

【前端编程小白】的HTML从零入门到实战

之前有高中毕业生读了博客&#xff0c;想让我帮他找一些前端入门的内容&#xff0c;他们报的计算机专业&#xff0c;想利用开学前夕学习一下&#xff0c;我给他推荐了一些菜鸟教程呀什么的。后来想&#xff0c;看来还是很多人需要一些更加入门的可成的&#xff0c;而且很多教程…