Codeforces Round 893 (Div. 2)B题题解

文章目录

  • [The Walkway](https://codeforces.com/contest/1858/problem/B)
    • 问题建模
    • 问题分析
      • 1.分析所求
      • 2.如何快速计算每个商贩被去除后的饼干数量
        • 代码

The Walkway

在这里插入图片描述在这里插入图片描述

问题建模

给定n个椅子,其中有m个位置存在商贩,在商贩处必须购买饼干吃,每隔经过d个椅子需要消耗饼干,在初始椅子1处也需要吃饼干,现在可以去除一个商贩,问去除一个商贩后所需消耗的饼干数量最小为多少,以及符合要求的商贩数量。

问题分析

1.分析所求

题目需要输出一个最小的饼干数量,以及对应符合要求的商贩数量。则可以考虑采用枚举计算每个商贩缺失后所需的饼干数量,取数量最小的情况即可。

2.如何快速计算每个商贩被去除后的饼干数量

由于到商贩处必须买饼干,也就是到商贩处计算椅子的间隔需要重新计算,则只需按商贩间隔计算饼干数量即可。由于只去除一个商贩,则可以预处理出所有商贩都存在的饼干数量,然后计算出去除商贩所需饼干数最少的情况即可。

代码

#include<bits/stdc++.h>#define x first
#define y second
#define C(i) str[0][i]!=str[1][i]
using namespace std;
typedef unsigned long long ULL;
typedef long long LL;
typedef pair<int, int> PII;
typedef pair<LL, LL> PLL;
const int N = 1e5+10, INF = 0x3f3f3f3f;
int s[N];void solve() {int n,m,d;cin >>n >>m >>d;for(int i=1;i<=m;i++)   cin >>s[i];///计算方便计算第一个椅子和最后一个椅子到商贩的间隔s[0]=1-d,s[m+1]=n+1;int ans=m;for(int i=0;i<=m;i++)   ans+=(s[i+1]-s[i]-1)/d;int val=0,cnt=0;///计算去除商贩后减少饼干数量最多的for(int i=1;i<=m;i++){int a=s[i]-s[i-1]-1;int b=s[i+1]-s[i]-1;int c=s[i+1]-s[i-1]-1;if(val<a/d+b/d-c/d+1)   val=a/d+b/d-c/d+1,cnt=1;else if(val==a/d+b/d-c/d+1) cnt++;}cout <<ans-val <<" " <<cnt<<'\n';
}int main() {int t = 1;cin >> t;while (t--) solve();return 0;
}

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

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

相关文章

Python程序设计——字符串处理的特殊方法

学习目标&#xff1a; 学习如何创建字符串使用len、min和max函数获取一个字符串的长度、串中的最大和最小的字符使用下标运算符([])访问字符串中的元素使用截取运算符str[ start:end]从较长的字符串中得到一个子串使用运算符连接两个字符串&#xff0c;通过*运算符复制一个字符…

【Odroid C4】交叉编译工具链安装以及QT交叉编译环境搭建

【Odroid C4】交叉编译工具链安装以及QT交叉编译环境搭建 虚拟机环境&#xff0c;UBUNTU20.04 文章目录 【Odroid C4】交叉编译工具链安装以及QT交叉编译环境搭建一、Odroid C4交叉编译工具链安装二、QT下载及编译安装1.QT下载2.交叉编译QT 配置QtCreator可以[参考](https://bl…

快速入门vue3新特性和新的状态管理库pinia

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 Vue3.3新特性 defineOptions defineModel pinia 介绍 与 Vuex 3.x/4.x 的比较 安装 核心概念 定义…

前馈神经网络多分类任务

pytorch深度学习的套路都差不多&#xff0c;多看多想多写多测试&#xff0c;自然就会了。主要的技术还是在于背后的数学思想和数学逻辑。 废话不多说&#xff0c;上代码自己看。 import torch import numpy as np import torch.nn as nn import torchvision import torchvisi…

【腾讯云Cloud Studio实战训练营】使用Cloud Studio社区版快速构建React完成点餐H5页面还原

陈老老老板&#x1f9b8; &#x1f468;‍&#x1f4bb;本文专栏&#xff1a;生活&#xff08;主要讲一下自己生活相关的内容&#xff09; &#x1f468;‍&#x1f4bb;本文简述&#xff1a;生活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f468;‍&#x1f4bb;上一篇…

成集云 | 用友U8采购请购单同步钉钉 | 解决方案

源系统成集云目标系统 方案介绍 用友U8是中国用友集团开发和推出的一款企业级管理软件产品。具有丰富的功能模块&#xff0c;包括财务管理、采购管理、销售管理、库存管理、生产管理、人力资源管理、客户关系管理等&#xff0c;可根据企业的需求选择相应的模块进行集…

什么是原子交换?

安全地在各个区块链网络之间传输资产对于释放被困流动性并吸引更多用户进入这一领域至关重要&#xff0c;同时也保持 Web3 的信任最小化核心价值。原子交换是一种让两个人在不依赖于中介来促成交易的情况下&#xff0c;在不同的区块链网络之间交换通证资产的方式。这为 DeFi 用…

Linux硬链接和软连接

1、硬链接 硬连接指通过索引节点来进行连接。在 Linux 的文件系统中&#xff0c;保存在磁盘分区中的文件不管是什么类型都给它分配一个编号&#xff0c;称为索引节点号(Inode Index)。在 Linux 中&#xff0c;多个文件名指向同一索引节点是存在的。比如&#xff1a;A 是 B 的硬…

数据结构之队列详解(包含例题)

一、队列的概念 队列是一种特殊的线性表&#xff0c;特殊之处在于它只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端&#xff08;rear&#xff09;进行插入操作&#xff0c;和栈一样&#xff0c;队列是一种操作受限制的线性表。进行插入操…

【Windows 常用工具系列 5 -- Selenium IDE的使用方法 】

文章目录 Selenium 介绍Selenium IDE 介绍 Selenium IDE安装Chrome 浏览器安装Selenium IDE使用 Selenium 介绍 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。 Selenium家庭成员有三个&#xff0c;分别是S…

Ubuntu 20.04 与 ROS noetic安装 gtsam 编译 LIO-SAM 的适配版本

Ubuntu 20.04 基于 ROS noetic安装 gtsam&#xff0c; 编译 LIO-SAM 的适配版本 摘要安装GTSAM(ros-noetic-gtsam版本)编译LIO-SAM的适配版本 摘要 本文简介在 Ubuntu 20.04 下以 ROS noetic 为基础安装 GTSAM 并成功编译 LIO-SAM 的适配版本。 安装GTSAM(ros-noetic-gtsam版…

腾讯云国际站代充-阿里云ECS怎么一键迁移到腾讯云cvm?

今天主要来介绍一下如何通过阿里云国际ECS控制台一键迁移至腾讯云国际CVM。腾讯云国际站云服务器CVM提供全面广泛的服务内容。无-需-绑-定PayPal&#xff0c;代-充-值腾讯云国际站、阿里云国际站、AWS亚马逊云、GCP谷歌云&#xff0c;官方授权经销商&#xff01;靠谱&#xff0…

视频汇聚集中存储EasyCVR平台调用iframe地址视频无法播放,该如何解决?

安防监控视频汇聚平台EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可提供视频监控直播、云端录像、视频云存储、视频集中存储、视频存储磁盘阵列、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、AI算法中台智能分析无缝…

【SpringBoot】中的ApplicationRunner接口 和 CommandLineRunner接口

1. ApplicationRunner接口 用法&#xff1a; 类型&#xff1a; 接口 方法&#xff1a; 只定义了一个run方法 使用场景&#xff1a; springBoot项目启动时&#xff0c;若想在启动之后直接执行某一段代码&#xff0c;就可以用 ApplicationRunner这个接口&#xff0c;并实现接口…

vue3+elementUI-plus实现select下拉框的虚拟滚动

网上查了几个方案&#xff0c;要不就是不兼容&#xff0c;要不就是不支持vue3, 最终找到一个合适的&#xff0c;并且已上线使用&#xff0c;需要修改一下样式&#xff1a; 代码如下&#xff1a; main.js里引用 import vue3-virtual-scroller/dist/vue3-virtual-scroller.css; …

xollam勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复

引言&#xff1a; 数字时代的繁荣与便捷&#xff0c;也孕育着各种网络安全威胁。其中&#xff0c;.xollam勒索病毒以其毒害性和隐蔽性引发了广泛关注。本文91数据恢复将为您深入解析.xollam勒索病毒的威胁&#xff0c;探讨解密方法&#xff0c;同时分享预防.xollam勒索病毒的关…

Python入门教程23:math模块的用法

**math是Python 的一个内置模块&#xff0c;它提供了许多数学函数和常量&#xff0c;用于进行数学计算。**以下是一些常用的math模块中的函数和常量&#xff1a; math.pi&#xff1a;圆周率π的近似值&#xff0c;约等于3.14159。 math.e&#xff1a;自然对数的底数e的近似值…

【Tomcat】(Tomcat 下载Tomcat 启动Tomcat 简单部署 基于Tomcat进行网站后端开发)

文章目录 Tomcat下载Tomcat启动Tomcat简单部署 基于Tomcat进行网站后端开发 Tomcat Tomcat 是一个 HTTP 服务器.HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式. HTTP 服务器我们可以通过 Java Socket 来实现. 而 Tomcat 就是基于 Java 实现的一个开源免费,也是…

Python爬虫:如何使用Python爬取网站数据

更新&#xff1a;2023-08-13 15:30 想要获取网站的数据&#xff1f;使用Python爬虫是一个绝佳的选择。Python爬虫是通过自动化程序来提取互联网上的信息。本文章将会详细介绍Python爬虫的相关技术。 一、网络协议和请求 在使用Python爬虫之前&#xff0c;我们需要理解网络协…

Synopsys EDA数字设计与仿真

搭建EDA环境 参考如下博文安装Synopsys EDA开发工具 https://blog.csdn.net/tugouxp/article/details/132255002?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132255002%22%2C%22source%22%3A%22tugouxp%22%7D Synopsys ED…