蓝桥杯备赛:每日一题

只学习不思考不记笔记==假把式

 这道题目的难度很难,当然主要的原因在于模型的转化,刚看的这道题也是一脸懵,但是转换成覆盖模型后就好了很多,归跟接地就是每块区域的中取最大的最少的牛覆盖天数,然后根据这个天数求每一块地的最少牛数。

首先要分三块地方去考虑问题。

1.最左边和最右边

 在左右两边最少的牛的覆盖天数很明显就是一头就是最左边或者最右边一头牛感染了,然后传染给别人,然后我们可以得到两边的天数为(总牛的数-1);

天数等于总牛数-1

那么我们可以得到不等式:

                                                                总天数<=总牛数-1 

2.中间

 那么如果我们的牛在中间呢,最少的牛数怎么求。

这时候容易想到的是奇数的情况即:

两倍的天数+1=总牛数 

 即最开始只有中间一头牛然后向两边扩张

天数=(总牛数-1)/2

 那么偶数情况其实就是

   两倍的天数+2=总牛数

   天数=(总牛数-2)/2

那么结合上面两个式子我们可以得到

       天数<=(总牛数-1)/2;

 那么对于我们想要我们每个区间的牛数最小就要我们的天数越大。

最后我们根据所有的牛数最小的最大天数中取最小值(这里因为如果天数取大了会导致感染不了这么多牛)。然后再对每个区间的牛做分配。

那么题目下面就转化成了天数一定,牛的感染总数一定的时候,如何让牛的起始数量最少。

 那就很明显我们应该让我们的牛在中间即

牛数(2*天数+1)=区间总感染牛数

牛数=(区间总感染牛数)/(2*天数+1) 

 这里我们要进行向上取整,如果向下可能会导致覆盖不够

那么就要用我们的公式:

然后对式子做优化

                                        牛数=(区间总感染牛数+2*天数)/2*天数+1 

最终得到我们完整的代码 

#include<vector>
#include<iostream>
using namespace std;
const int N=3e5+10;
char a[N];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)cin>>a[i];
    vector<int>cnt;//存入每个区间牛最少时候的天数
    int r=n;
    for(int i=0;i<n;i++){
        if(a[i]=='0')continue;
        int j=i+1;
        while(j<n&&a[j]=='1')j++;//遍历到1结束位置
        int d=j-i, c=(d-1)/2;//d为牛数,c为中间区域的天数
        if(!i||j==n)//左右边界情况
            c=d-1;
        r=min(r,c);//最小的天数
        cnt.push_back(d);
        i=j;
    }
    int res=0;
    for(auto ch:cnt)
    {
        res+=(ch+2*r)/(2*r+1);//向上取整
    }
    cout<<res;
    
}

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7. 机器人记录数据集(具身智能机器人套件)

1. 树莓派启动机器人 conda activate lerobotpython lerobot/scripts/control_robot.py \--robot.typelekiwi \--control.typeremote_robot2. huggingface平台配置 huggingface官网 注册登录申请token&#xff08;要有写权限&#xff09;安装客户端 # 安装 pip install -U …

突破极限:高性能ROCK 220A-M 工业级无人机电调深度测评 —— 无人机动力系统的核心守护者

引言 在无人机技术高速发展的今天&#xff0c;动力系统的稳定性与效率成为决定任务成败的关键。作为工业级电调领域的标杆产品&#xff0c;ROCK 220A-M 凭借其卓越的性能与多重安全设计&#xff0c;为专业级无人机应用提供了可靠的动力解决方案。本文将从技术架构、防护…

OceanBase-obcp-v3考试资料梳理

集群架构 基本概念 集群: 集群由一个或多个Region组成,Region 由一个或多个Zone组成,Zone由一个或多个OBServer组成,每个OBServer里有若干个partition的Replica。 Region: 对应物理上的一个城市或地域,当OB集群由多个Region组成时, 数据库的数据和服务能力就具备地域…

深度学习PyTorch之13种模型精度评估公式及调用方法

深度学习pytorch之22种损失函数数学公式和代码定义 深度学习pytorch之19种优化算法&#xff08;optimizer&#xff09;解析 深度学习pytorch之4种归一化方法&#xff08;Normalization&#xff09;原理公式解析和参数使用 深度学习pytorch之简单方法自定义9类卷积即插即用 实时…

Gartner发布2025年网络安全六大预测

文章目录 前言趋势1&#xff1a;生成式AI推动数据安全计划趋势2&#xff1a;管理机器身份趋势3&#xff1a;战术型AI趋势4&#xff1a;优化网络安全技术趋势5&#xff1a;扩大安全行为与文化计划的价值趋势6&#xff1a;应对网络安全倦怠 前言 Gartner发布2025年网络安全六大预…

WPS Word中英文混杂空格和行间距不一致调整方案

文章目录 问题1&#xff1a;在两端对齐的情况下&#xff0c;如何删除参考文献&#xff08;英文&#xff09;的空格问题2&#xff1a;中英文混杂行间距不一致问题问题3&#xff1a;设置中文为固定字体&#xff0c;设置西文为固定字体参考 问题1&#xff1a;在两端对齐的情况下&a…

代码随想录算法训练营第22天 | 组合 组合总和 电话号码的字母组合

77. 组合 77. 组合 - 力扣&#xff08;LeetCode&#xff09; class Solution {List<Integer> path new ArrayList<>();List<List<Integer>> result new ArrayList<>();public void backTracking(int n,int k,int startIndex){if(path.size() …

Hadoop、Hive、Spark的关系

Part1&#xff1a;Hadoop、Hive、Spark关系概览 1、MapReduce on Hadoop 和spark都是数据计算框架&#xff0c;一般认为spark的速度比MR快2-3倍。 2、mapreduce是数据计算的过程&#xff0c;map将一个任务分成多个小任务&#xff0c;reduce的部分将结果汇总之后返回。 3、HIv…

从0开始的操作系统手搓教程21:进程子系统的一个核心功能——简单的进程切换

目录 具体说说我们的简单RR调度 处理时钟中断处理函数 调度器 schedule switch_to 我们下面&#xff0c;就要开始真正的进程切换了。在那之前&#xff0c;笔者想要说的是——我们实现的进程切换简单的无法再简单了——也就是实现一个超级简单的轮询调度器。 每一个进程按照…

EP 架构:未来主流方向还是特定场景最优解?

DeepSeek MoE架构采用跨节点专家并行&#xff08;EP&#xff09;架构&#xff0c;在提升推理系统性能方面展现出巨大潜力。这一架构在发展进程中也面临诸多挑战&#xff0c;其未来究竟是会成为行业的主流方向&#xff0c;还是仅适用于特定场景&#xff0c;成为特定领域的最优解…

win11编译llama_cpp_python cuda128 RTX30/40/50版本

Geforce 50xx系显卡最低支持cuda128&#xff0c;llama_cpp_python官方源只有cpu版本&#xff0c;没有cuda版本&#xff0c;所以自己基于0.3.5版本源码编译一个RTX 30xx/40xx/50xx版本。 1. 前置条件 1. 访问https://developer.download.nvidia.cn/compute/cuda/12.8.0/local_…

前端到AI,LangChain.Js(五)

学习地址&#xff1a; 学习小册 实战 基于前面的RAG模块&#xff0c;可以通过构建本地存储向量数据库&#xff0c;本地存储聊天记录&#xff0c;部署成stream API&#xff0c;做一个chat bot。 Agents模块&#xff0c;可以通过tools进行数据标签和信息提取&#xff0c;通过RU…

使用 Arduino 和 Wi-Fi 控制 RGB LED

通过 WiFi 的 Arduino RGb LED 控制器 &#xff0c;在本文中&#xff0c;我们将介绍下一个基于 IOT 的项目 - 使用 Wi-Fi 的 RGB LED 闪光灯。在这里&#xff0c;我们使用 Arduino 和 ESP8266 Wi-Fi 模块通过 Android 手机通过 Wi-Fi 控制 RGB LED 的颜色。 在这个 RGB Flash…

C# 开发工具Visual Studio下载和安装

开发环境与工具 C#的主要开发环境是Visual Studio&#xff0c;这是一个功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;集成了代码编辑、调试、项目管理、版本控制等功能。此外&#xff0c;Visual Studio Code也是一个轻量级的跨平台代码编辑器&#xff0c;支…

HTML + CSS 题目

1.说说你对盒子模型的理解? 一、是什么 对一个文档进行布局的时候&#xff0c;浏览器渲染引擎会根据标准之一的css基础盒模型&#xff0c;将所有元素表示为一个个矩形的盒子。 一个盒子由四个部分组成: content&#xff0c;padding&#xff0c;border&#xff0c;margin 下…

数据结构–栈

数据结构–栈 什么是栈&#xff1f; 首先先给大家讲一下栈是什么&#xff1a;栈是一种特殊的线性表。特殊之处就在于对栈的操作的特殊。对于栈&#xff0c;只允许其在固定的一端进行插入和删除元素操作。不像普通的顺序表&#xff0c;链表&#xff0c;可以在任意位置进行删除插…

通过Docker搭个游戏——疯狂大陆(Pkland)

最近在研究我的服务器&#xff0c;在服务器上搭了很多docker的项目&#xff0c;然后找着找着发现一个能用Docker配置环境的游戏叫Pkland。 项目地址&#xff1a;GitHub - popkarthb/pkland: 疯狂大陆是一款多人在线的战略游戏。 游戏操作简捷,您仅需要使用浏览器就可以在任何时…

03.06 QT

一、使用QSlider设计一个进度条&#xff0c;并让其通过线程自己动起来 程序代码&#xff1a; <1> Widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QThread> #include "mythread.h"QT_BEGIN_NAMESPACE namespace Ui {…

【LeetCode 热题 100】3. 无重复字符的最长子串 | python 【中等】

美美超过管解 题目&#xff1a; 3. 无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。 注…

微服务拆分-拆分商品服务

复制hm-service模块pom.xml文件里面的依赖到item-service模块pom.xml文件。 需要准备的依赖 <dependencies><!--common--><dependency><groupId>com.heima</groupId><artifactId>hm-common</artifactId><version>1.0.0</v…