codeforces刷题(1100):1862C_div3

news/发布时间2024/8/25 17:46:04

C、Flower City Fence

跳转原题点击此:该题地址

1、题目大意

  给你n块长度依次不递增的紧密连接在一起的垂直木板,将它们水平横过来,问其组成的全新n块木板的长度是否与原来的木板长度一致。
注意:这里的长度是指:木板的高度。水平摆放后的木板是左对齐,所以其长度就是各个木板水平摆放后的连接高度。(语言容易表达不清晰,建议看原题的图)。

2、题目解析

  我们注意到,水平摆放后的木板高度就是每格的木板数量。我们得从后往前推,当前格的木板数量少了 则 木板高度也就少了。所以我们令\(a[i] = 木板长度\)\(b[木板长度] = i\)就能得到水平摆放后的木板高度。
但是如果存在连续的木板高度就会出现\(b[i]==0\) 的情况,解决方法为:因为原木板高度是非递增的,通过\(max(b[i], b[i+1]\)就能依次填补b数组中为0的情况(\(b[i] \ge b[i + 1]\))。
又因为水平摆放后的木板高度是每格的木板数量,当原输入的木板长度大于n时,水平摆放后就一定与原长度不一致

3、具体代码

#include<bits/stdc++.h>using namespace std;const int N = 2e5+10;int T;
int n;
int a[N], b[N];void solve()
{cin >> n;memset(b, 0, sizeof b);for(int i = 1; i <= n; i++)cin >> a[i];for(int i = 1; i <= n; i++){// 如果ai大于n,那么横过来就一定无法变为aiif(a[i] > n){cout << "NO\n";return;}// 因为是a[i] = 高度,而b数组则反过来b[高度] = i// 因为高度会重复,所以通过max(b[i], b[i + 1])来更新b[a[i]] = i;}// 倒着过来是因为由于题干是不递增地顺序,所以倒过来后,值越小的就越高for(int i = n; i > 0; i--){b[i] = max(b[i], b[i + 1]);if(b[i] != a[i]){cout << "NO\n";return;}}cout << "YES\n";
}int main()
{cin >> T;while (T--){solve();}return 0;
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系连锁易网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

08PCIE数据卡DDR缓存中断采集

软件版本:vitis2021.1(vivado2021.1) 操作系统:WIN10 64bit 硬件平台:适用XILINX A7/K7/Z7/ZU/KU系列FPGA 登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑! 8.1概述 上一个例子演示了用BRAM作为数据缓存,显然板卡的BRAM容量非常有限,如果需要更大量数据…

Java基础-数据类型

数据类型强类型语言要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。弱类型语言要求变量的使用可以不符合规定,所有变量都必须先定义后才能使用。 Java的数据类型分为两大类基本类型(primitive type)引用类型(reference type) public class Demo03 { …

数列操作

注意\(Max[i]\)表示第\(i\)块没有加上\(lazy[i]\)的最大值

数据库查询,按年月排序,计算每月、当年每月有几条数据

数据库查询,按年月排序,计算每月有几条数据 数据库查询,按年月排序,计算当年每月有几条数据SELECT DATE_FORMAT(inspection_date,%Y-%m) AS DATETIME, count(*) AS numFROM gw_inspection_data t1WHERE YEAR(inspection_date) = YEAR(CURDATE())GROUP BY DATE_FORMAT(in…

JS 鼠标拖拽元素移动

代码示例 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><title>Document</title><style>#wrap {width: 100px;height: 100px;background-color: green;position: absolute;left: 100px;top…

linux 中实现仅对指定目录下的目录或者文件单独进行迭代

001、测试目录如下,分别包含目录、文件[root@pc1 test]# ls ## 测试目录 dir1 dir2 dir3 dir4 file1 file2 file3 file4 002、仅对目录进行迭代003、仅对文件进行迭代。

3-1-05 Modesim软件安装

1.1 Modelsim软件版本选择 不同的Vivado版本支持使用的Modesim版本不同,具体可查看Xilinx提供的文档UG973-vivado-release-notes-install-license。我们使用的Vivado 软件版本是 vivado2017.4,推荐使用版本是 ModelSim SE/DE/PE (10.6b),经过安装发现,使用低于推荐的版本,…

2023-12-30

2023-12-30 尝试了一下实现中间件,运行那块的函数是请教 chatGPT[1] 得到的,自己之前想的一团乱麻,结果如此简洁。 // 最小中间件实现 // 存储所有中间件 let middlewares: middlewares[] = [] type handel = typeof handel // 对于纯函数而言,参数就是他的上下文 type m…

SRE Google运维解密 28-34章

第四部分 管理 第二十八章 迅速培养SRE加入on-call如何给新手带上喷气背包,同时保证老手的速度不受影响?成功的 SRE 团队离不开信任一一为了维持全球化服务的正常运转,我们必须信任 on-call团队了解系统如何运行,可以诊断系统的异常情况,善于利用资源和寻求帮助,以及可以…

Java反序列化漏洞-URLDNS链分析

目录一、前置知识反射二、分析1. URL2. HashMap3. 解决一些问题反射修改字段值三、POC四、利用链 一、前置知识 菜鸟教程 Java 序列化 Java安全-反射 URLDNS链的作用就是在目标主机中可能存在反序列化输入的数据的地方,传入序列化后的URLDNS利用链,如果目标主机解析了这个URL…

每日一图——2023/12/29

每日一图——终于放假了本文来自博客园,作者:{Mr Q},转载请注明原文链接:https://www.cnblogs.com/Layout-QJS/p/17935799.html

JavaWebDay6

数据库:存储和管理数据的仓库 数据库管理系统:DataBase Management System(DBMS),操纵和管理数据库的大型软件 SQL:Structer Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准 关系型数据库 SQL简介 注意-- 注释内容 --与注释内容之间…

Volcano 原理、源码分析(一)

0. 总结前置 1. 概述 2. Volcano 核心概念2.1 认识 Queue、PodGroup 和 VolcanoJob 2.2. Queue、PodGroup 和 VolcanoJob 的关系3. Volcano 调度框架概览 4. 源码分析4.1 Action 实现在哪里? 4.2 从 main 函数入手看调度器启动过程4.2.1 入口逻辑 4.2.2 NewScheduler() 方法 4…

记录--经常被cue大文件上传,忍不住试一下

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助大文件上传主要步骤:获取文件对象,切分文件 根据文件切片,计算文件唯一hash值 上传文件切片,服务端保存起来 合并文件切片,前端发送合并请求,服务端将文件切片合并为原始文件 秒传,对于已经存在的分片,可…

debezium+kafka实现mysql数据同步(debezium-connector-mysql)

1.情景展示 在企业当中,往往会存在不同数据库之间的表的数据需要保持一致的情况(数据同步)。 如何将A库a表的数据同步至B库a表当中呢?(包含:新增、修改和删除) 往往不仅仅需要保持数据的一致性,还要保证数据的即时性,即:A库a表的数据发生变化后,B库a表也能立刻同步变…

数据结构实验代码分享 - 3

哈夫曼编码/ 译码系统(树应用) [问题描述] 任意给定一个仅由 26 个大写英文字母组成的字符序列,根据哈夫曼编码算法,求得每个字符的哈夫曼编码。 要求: 1)输入一个由 26 个英文字母组成的字符串,请给出经过哈夫曼编码后的编码序列及其编码程度。(编码) 2)采用上一问题…

leetcode 2706 购买两块巧克力

leetcode 2706 购买两块巧克力题目: 2706 购买两块巧克力 思路:找两个最小值。 分情况讨论代码 class Solution:def buyChoco(self, prices: List[int], money: int) -> int:# 遍历一遍,找2个最小值# 找一个最小值我们都会。# 找次小值,就分两种情况,假设minPrice是最小…

开发商城小程序具有哪些模块和功能?(临沂软件定制开发-艾思软件)

随着移动互联网的发展,微信小程序已经成为了企业、商家和开发者的重要工具。商城小程序作为微信小程序的一种类型,为商家提供了一个全新的销售渠道。本文将详细介绍商城小程序的模块和功能,并附带相关代码。 一、商城小程序的模块首页模块:展示商城的热门商品、优惠活动等信…

01.Shiro基础概念以及快速入门

概述 Apache Shiro 是一个功能强大且灵活的开源安全框架,可以干净地处理身份验证,授权,企业会话 Management 和加密。 Apache Shiro 的首要目标是易于使用和理解。安全有时可能非常复杂,甚至会很痛苦,但不一定如此。框架应尽可能掩盖复杂性,并公开干净直观的 API,以简化…
推荐文章