当前位置: 首页 > news >正文

【牛客周赛 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;}
http://www.jsqmd.com/news/84732/

相关文章:

  • 基于Springboot医疗健康服务系统【附源码+文档】
  • 最强更新!西储大学(CWRU)轴承数据集保姆级教程!
  • 你,宇宙唯一的中心:在无限复刻中活出绝对的存在
  • YOLOv11 改进 - C2PSA | C2PSA融合DML动态混合层(Dynamic Mixing Layer)轻量级设计优化局部细节捕获与通道适应性,提升超分辨率重建质量
  • CodeSearchNet:一个大规模代码-文档检索数据集的构建、应用与挑战
  • Rust 模块化单体架构:告别全局 Migrations,实现真正的模块自治
  • 编辑相似度(Edit Similarity):原理、演进与多模态扩展
  • Spring-AI 最新文档系列(一)概述
  • Spring Boot 权限控制三件套:JWT 登录校验 + 拦截器 + AOP 角色注解实战
  • 5大实用技巧:用downkyi打造高效视频下载工作流
  • 百度网盘直链解析实战手册:突破限速封锁的完整解决方案
  • 电力负荷预测新思路:集成学习如何让澳大利亚电力数据“开口说话“?⚡
  • ClickHouse 快速入门
  • A little something to get you started
  • SmoothDiscreteMarchingCubes 多边形网格数据的平滑
  • AlignTwoPolyDatas 基于ICP算法的配准和相机视角切换
  • YOLOv11 改进 - C2PSA | C2PSA融合EDFFN高效判别频域前馈网络(CVPR 2025):频域筛选机制增强细节感知,优化复杂场景目标检测
  • Vue + Echarts 实现科技感数据大屏
  • 删除有序数组中的重复项(C++)
  • downkyi下载优先级终极指南:让你的重要视频先人一步
  • YOLOv11 改进 - C2PSA | C2PSA融合Mona多认知视觉适配器(CVPR 2025):打破全参数微调的性能枷锁:即插即用的提点神器,引领视觉微调新突破
  • 企业级部署:奇安信天擎在金融行业的实战案例
  • Windows右键菜单终极优化指南:让你的右键菜单重获新生
  • 百度网盘直链解析:新手必学的3步全速下载方法
  • 洛雪音乐PC版2.12.0| 最强电脑免费听歌软件,所有平台音乐都能听,需要导入音源
  • YOLOv11改进 - C3k2融合 | C3k2融DBlock解码器块( CVPR 2025 ) Decoder Block:解码器块,去模糊和提升图像清晰度
  • 正义荣耀圣戒 无限代金券买断
  • YOLOv11改进 - C3k2融合 | C3k2融合MambaOut(CVPR 2025),简洁高效的视觉模型基线
  • 【KMP算法】KMP算法揭秘:高效字符串匹配的艺术
  • ZTools v1.1.2:桌面应用启动器与搜索工具