[GDKOI2024 普及组] 读书(线段树)

luogu 传送门icon-default.png?t=O83Ahttps://www.luogu.com.cn/problem/P10077

解题思路

我们可以贪心地思考:每次寻找最小值,然后去阅读这一章。

直到阅读的章数达到 n

这样,你就可以写出一个 O(n^2) 的暴力,拿 40 分。

但是,如果你并不满足于此,可以继续想想……

你发现每次都要求最小值,于是你想到了线段树

可以将寻找最小值的时间优化到 O(\log n)

所以,每次取到最小值之后,把它设为一个极大值,表示选过了,同时统计阅读的章数。

如果 tr[1].mn 已经被赋值成了极大值,那么说明所有章都已阅读过了,直接输出即可。

最多也是阅读 n 天,如果枚举过了 n 天,那就是无解(自己想想为什么)。

代码

#include<bits/stdc++.h>
using namespace std;int d,n,cnt;
int a[500001];
struct tree{int mn,l,r;
}tr[2000001];
void build(int u,int l,int r)
{tr[u].l=l;tr[u].r=r;tr[u].mn=a[l];if(l==r)return;int mid=l+r>>1;build(u*2,l,mid);build(u*2+1,mid+1,r);tr[u].mn=min(tr[u*2].mn,tr[u*2+1].mn);
}
void change(int u,int l,int r,int val)
{if(tr[u].l==tr[u].r){tr[u].mn=val;cnt++;return;}int mid=tr[u].l+tr[u].r>>1;if(l<=mid&&tr[u*2].mn<=cnt)change(u*2,l,r,val);if(r>mid&&tr[u*2+1].mn<=cnt)change(u*2+1,l,r,val);tr[u].mn=min(tr[u*2].mn,tr[u*2+1].mn);
}
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>d>>n;for(int i=1;i<=n;i++){cin>>a[i];}build(1,1,n);cnt=0;for(int i=1;i<=n;i++){change(1,1,n,INT_MAX);if(tr[1].mn==INT_MAX){cout<<i;return 0;}}cout<<-1;return 0;
}

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

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

相关文章

TCP/IP基础

TCP/IP的概念 TCP/IP是一个协议簇&#xff0c;包括多个协议 定义了计算机操作系统如何连入因特网&#xff0c;以及数据如何在他们之间传输的标准。 TCP/IP的分层结构 TCP/IP按照层次可以分成四层&#xff0c;应用层、传输层、网络层和数据链路层 应用层 包括虚拟终端协议…

数据迁移: 安全高效转移数据, 满足企业业务需求和技术改进

天津鸿萌科贸发展有限公司从事数据安全服务二十余年&#xff0c;致力于为各领域客户提供专业的数据存储、数据恢复、数据备份、数据迁移等解决方案与服务&#xff0c;并针对企业面临的数据安全风险&#xff0c;提供专业的相关数据安全培训。 鸿萌数据迁移业务为众多企业顺利高效…

可视化建模与UML《类图实验报告》

史铁生&#xff1a; 余华和莫言扛着我上火车&#xff0c; 推着走打雪仗&#xff0c; 还带我偷西瓜&#xff0c; 被人发现后他们拔腿就跑&#xff0c; 却忘了我还在西瓜地里。 一、实验目的&#xff1a; 1、熟悉类图的构件事物。 2、熟悉类之间的泛化、依赖、聚合和组合关系…

Zypher Network:全栈式 Web3 游戏引擎,服务器抽象叙事的引领者

近期&#xff0c;《黑神话&#xff1a;悟空》的爆火不仅让 AAA 游戏重回焦点&#xff0c;也引发了玩家与开发者的热议。Web2 游戏的持续成功导致部分 Web3 玩家们的倒戈&#xff0c;对比之下 Web3 游戏存在生命周期短且商业模式难以明确的问题&#xff0c;尤其在当前加密市场环…

C++11的简介

杀马特主页&#xff1a;羑悻的小杀马特.-CSDN博客 ------ ->欢迎阅读 欢迎阅读 欢迎阅读 欢迎阅读 <------- 目录 一列表初始化的变化&#xff1a; 二左右值即各自引用的概念&#xff1a; 2.1左右…

Java 上机实践3(分支与循环语句)

&#xff08;大家好&#xff0c;今天分享的是Java的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 实验一&#xff1a;回文数 一、实验目的 二、实验要求 三、程序代码 四、实验结果 实验二&#xff1a;猜数字…

[MRCTF2020]PYWebsite1

如果输入的密钥是对的那么我们就直接跳转到flag.php页面 那么我们直接访问&#x1f60e;&#xff0c;他不带我们去我们自己去. 那就用XFF呗. 知识点&#xff1a; 定义&#xff1a;X-Forwarded-For是一个HTTP请求头字段&#xff0c;用于识别通过HTTP代理或负载均衡方式连接到W…

实时离线融合计算的数据同步实践

实时批量融合计算时&#xff0c;一般需要批量将数据推送到hbase供实时使用。 本文将通过两个典型场景--累计场景与最新分区场景&#xff0c;讨论批量和实时衔接的设计方案&#xff0c;解决批量延迟可能导致的问题。 累计场景 在之前的文章中讲述了实时离线结合共同计算客户1…

怎么做自己公司的小程序

我是【码云数智】平台的黄导&#xff0c;今天分享&#xff1a;怎么做自己公司的小程序 企业小程序怎么制作&#xff0c;利用可视化小程序模板搭建&#xff0c;企业能够轻松跨越技术门槛&#xff0c;快速响应市场变化。 01、小程序制作流程 02、微信小程序开发多少钱 03、微…

外包干了5年,技术退步太明显了。。。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;19年通过校招进入杭州某软件公司&#xff0c;干了差不多五年的功能测试&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了五年的功能测试&#xff0c;已经…

Java | Leetcode Java题解之第530题二叉搜索树的最小绝对差

题目&#xff1a; 题解&#xff1a; class Solution {int pre;int ans;public int getMinimumDifference(TreeNode root) {ans Integer.MAX_VALUE;pre -1;dfs(root);return ans;}public void dfs(TreeNode root) {if (root null) {return;}dfs(root.left);if (pre -1) {pr…

仪表板展示|DataEase看中国:历年双十一电商销售数据分析

背景介绍 2024年“双十一”购物季正在火热进行中。自2009年首次推出至今&#xff0c;“双十一”已经成为中国乃至全球最大的购物狂欢节&#xff0c;并且延伸到了全球范围内的电子商务平台。随着人们消费水平的提升以及电子商务的普及&#xff0c;线上销售模式也逐渐呈现多元化…

机器人课程——使用TIA Portal V15博图软件进行西门子组态——带显示屏

一.打开TIA Portal V15博图软件创建项目 1.选择创建新项目 创建完成后选择PLC 二.创建完成后选择设备PLC (此处以S7-1200 1214FC DC/DC/DC 为例) 三.添加扩展板&#xff08;如有——这里以223-1BL32-0XB0为例&#xff09; 四.更改扩展版地址 五.添加触摸屏&#xff08;这里以…

Java代码与数据库纽带——JDBC

ok&#xff0c;看了题目&#xff0c;就可以知道今天要分享的是JDBC 讲这个这之前&#xff0c;想讲讲之前的。 之前我们操作数据库基本都是通过MySQL客户端&#xff0c;进行编写sql语句来操作的。 但是我们在开发中一般都是通过代码来操控数据库的。 而且在我们日常开发中&a…

Webserver(5.6)服务器压力测试

目录 webbench是linux上一款知名的优秀的web性能压力测试工具。 测试处在相同硬件上&#xff0c;不同服务的性能以及在不同硬件上同一个服务的运行状况 展示服务器的两项内容&#xff1a;每秒钟响应请求数和每秒钟传输数据量 webbench首先fork多个子进程&#xff0c;每个子进程…

MySQL数据库基础(一) MySQL安装及数据类型

目录 一、MySQL数据裤简介 二、MySQL数据的安装 2.1、MySQL安装 2.2、修改MySQL密码登录策略 三、数据库基础管理 3.1、连接方式及数据储存流程 3.2、库管理命令 3.3、表管理命令 3.4、记录管理命令 四、MySQL数据类型 4.1、常见信息种类 4.2、字符型 4.3、数值型 4.4、日期时间…

好用的远程控制安卓和IOS端的手机软件有哪些?

在数字化时代&#xff0c;我们的工作和娱乐活动越来越依赖于移动设备。无论是在家中、办公室还是旅途中&#xff0c;能够远程控制我们的设备成为了一种高效便捷的需求。市场上涌现出了许多远程控制软件&#xff0c;它们各具特色&#xff0c;旨在提供最佳的用户体验。那么&#…

领夹无线麦克风哪个牌子好?双十一选无线领夹麦克风避开选购陷阱

在多媒体和远程通信日益普及的今天&#xff0c;无线领夹麦克风已成为提升音质和便利性的关键&#xff0c;它们在视频制作、网络直播、在线教育等多个领域中扮演着重要角色。面对市场上众多的产品和技术参数&#xff0c;消费者往往感到无从下手。不过不用过于担心&#xff0c;在…

开发中使用UML的流程_01概述

目录 CIM-1:定义业务流程 CIM-2:分析业务流程 ​CIM-3:定义系统范围 ​PIM-1:分析系统流程 PIM-2:分析业务规则 PIM-3:定义静态结构 PIM-4:定义操作和方法 开发中使用UML的流程,主要分为7部分,具体如下: CIM-1:定义业务流程 定义及分析业务流程是为了尽快理…

ArcGIS/QGIS按掩膜提取或栅格裁剪后栅格数据的值为什么变了?

问题描述&#xff1a; 现有一栅格数据&#xff0c;使用ArcGIS或者QGIS按照矢量边界进行按掩膜提取或者栅格裁剪以后&#xff0c;其值的范围发生了变化&#xff0c;如下&#xff1a; 可以看到&#xff0c;不论是按掩膜提取还是进行栅格裁剪后&#xff0c;其值的范围均与原来栅…