news 2026/7/7 20:06:32

【牛客周赛 107】E 题【小苯的刷怪笼】题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【牛客周赛 107】E 题【小苯的刷怪笼】题解

题目链接

题目大意

给定三个正整数n , a , k n, a, kn,a,k,其中:

每次操作,小红会选择一个或相邻两个怪物,使得它(们)的血量(各自)− 1 -11。当怪物的血量≤ 0 \leq 00时,怪物被消灭(相邻关系不会改变)。

小红一定会选择最优策略,使用尽可能少的攻击次数消灭这些怪物。

在这种情况下,小苯希望小红能使用恰好k kk次攻击消灭所有的怪物。

请你帮小苯找出一个可能的血量分配方案,如果不行输出− 1 -11

数据范围

Solution

首先,n = 1 n = 1n=1时,只能将a aa分配给一个怪物,所以只要看是否有a = k a = ka=k

下面考虑n > 1 n > 1n>1的情况。

由于需要恰好k kk次操作,所以我们需要找到操作次数的上下界。

先找下界L LL

再找上界R RR

所以只有当⌈ a 2 ⌉ ≤ k ≤ a − ⌊ n 2 ⌋ \left\lceil \dfrac{a}{2} \right\rceil \leq k \leq a - \left\lfloor \dfrac{n}{2} \right\rfloor2aka2n时,才有可能构造一个合法分配。


考虑从上界R = a − ⌊ n 2 ⌋ R = a - \left\lfloor \dfrac{n}{2} \right\rfloorR=a2n开始调整。

此时怪物1 11除了底部的1 11血量值,还有额外分配的a − n a - nan血量值,我们将其拿出s ss来分配给怪物2 22,这样怪物1 11的额外血量为a − n − s a - n - sans,怪物2 22的额外血量为s ss

接着考虑这种分配下的操作次数。

综上,操作次数为a − ⌊ n 2 ⌋ − s a - \left\lfloor \dfrac{n}{2} \right\rfloor - sa2ns

于是令k = a − ⌊ n 2 ⌋ − s k = a - \left\lfloor \dfrac{n}{2} \right\rfloor- sk=a2ns,得到s = a − ⌊ n 2 ⌋ − k . s = a - \left\lfloor \dfrac{n}{2} \right\rfloor - k.s=a2nk.

接下来只要验证这个解是否满足条件。

综上,解s = a − ⌊ n 2 ⌋ − k s = a - \left\lfloor \dfrac{n}{2} \right\rfloor - ks=a2nk合法。

那么额外分配给怪物1 11的为a − n − s = k − ⌈ n 2 ⌉ a - n - s = k - \left\lceil \dfrac{n}{2} \right\rceilans=k2n,怪物2 22的为a − ⌊ n 2 ⌋ − k a - \left\lfloor \dfrac{n}{2} \right\rfloor - ka2nk

C++ Code

#include<bits/stdc++.h>intmain(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);intn,a,k;std::cin>>n>>a>>k;if(n==1){std::cout<<(a==k?a:-1)<<"\n";return0;}if((a+1)/2>kora-n/2<k){std::cout<<-1<<"\n";return0;}std::vectorans(n,1);ans[0]+=k-(n+1)/2;ans[1]+=a-k-n/2;for(inti=0;i<n;i++){std::cout<<ans[i]<<" \n"[i==n-1];}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 19:29:27

YOLOv11 改进 - C2PSA | C2PSA融合Mona多认知视觉适配器(CVPR 2025):打破全参数微调的性能枷锁:即插即用的提点神器,引领视觉微调新突破

前言 本文介绍了新型视觉适配器微调方法Mona,并将其集成到YOLOv11中。传统全参数微调成本高、存储负担重且有过拟合风险,现有PEFT方法性能落后。Mona仅调整5%以内的骨干网络参数,在多个视觉任务中超越全参数微调。其核心亮点包括参数效率高、性能突破和即插即用。适配器模块…

作者头像 李华
网站建设 2026/7/7 8:10:43

YOLOv11 改进 - SPPF模块 | 替代SPPF, Mona多认知视觉适配器(CVPR 2025):打破全参数微调的性能枷锁:即插即用的提点神器

前言 本文介绍了新型视觉适配器微调方法Mona,并将其集成到YOLOv11中。传统全参数微调成本高、存储负担重且有过拟合风险,现有PEFT方法性能落后。Mona仅调整5%以内的骨干网络参数,在多个视觉任务中超越全参数微调。其核心亮点包括参数效率高、性能突破和即插即用。适配器模块…

作者头像 李华
网站建设 2026/7/7 19:48:21

企业级RPM组件变更测试全攻略:从虚拟化到容器化的深度实践

引言&#xff1a;RPM测试为何如此关键&#xff1f; 在Linux DevOps实践中&#xff0c;RPM包的管理与测试往往是决定系统稳定性的关键环节。每一次组件的升级、修复或功能增强&#xff0c;都可能引入意想不到的依赖冲突、配置变更或性能问题。据统计&#xff0c;超过30%的生产环…

作者头像 李华
网站建设 2026/7/7 18:51:05

MongoDB 索引

MongoDB 索引 引言 MongoDB 是一个高性能、可扩展的文档存储数据库,它提供了灵活的数据模型和强大的查询能力。在 MongoDB 中,索引是一个非常重要的概念,它能够显著提高数据库的查询效率。本文将深入探讨 MongoDB 索引的原理、类型、创建方法以及优化策略。 索引概述 索…

作者头像 李华
网站建设 2026/7/7 9:46:50

java学习--8个包装类

Java 中的8 个包装类&#xff08;Wrapper Class&#xff09; 是为了解决基本数据类型无法直接参与面向对象编程&#xff08;如不能作为集合元素、无法调用方法&#xff09;的问题&#xff0c;为每个基本数据类型提供了对应的引用类型。以下是完整的 8 个包装类详解&#xff1a;…

作者头像 李华
网站建设 2026/7/7 2:04:12

单片机芯片] CH32V307 支持手机的虚拟U盘实现拖拽固件升级

看到虚拟优盘进行拖拽升级后&#xff0c;我也进行了几天测试尝试&#xff0c;终于还是找到了方法&#xff0c;能够在手机也能升级。模拟优盘主要是向电脑发送DBR表&#xff0c;DBR(DOS Boot Record)&#xff1a;磁盘操作系统引导记录&#xff0c;DBR是每个逻辑分区的一个引导记…

作者头像 李华