当前位置: 首页 > 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.gsyq.cn/news/94962.html

相关文章:

  • YOLOv11 改进 - C2PSA | C2PSA融合DML动态混合层(Dynamic Mixing Layer)轻量级设计优化局部细节捕获与通道适应性,提升超分辨率重建质量
  • 编辑相似度(Edit Similarity):原理、演进与多模态扩展
  • ClickHouse 快速入门
  • A little something to get you started
  • YOLOv11 改进 - C2PSA | C2PSA融合EDFFN高效判别频域前馈网络(CVPR 2025):频域筛选机制增强细节感知,优化复杂场景目标检测
  • Vue + Echarts 实现科技感数据大屏
  • SmoothDiscreteMarchingCubes 多边形网格数据的平滑
  • YOLOv11 改进 - C2PSA | C2PSA融合Mona多认知视觉适配器(CVPR 2025):打破全参数微调的性能枷锁:即插即用的提点神器,引领视觉微调新突破
  • YOLOv11 改进 - SPPF模块 | 替代SPPF, Mona多认知视觉适配器(CVPR 2025):打破全参数微调的性能枷锁:即插即用的提点神器
  • 百度网盘直链解析:新手必学的3步全速下载方法
  • 【KMP算法】KMP算法揭秘:高效字符串匹配的艺术
  • CSS Padding图解指南:小白也能懂的间距魔法
  • KL按键映射文件修改
  • 智驾相关名词简介
  • 面向对象程序设计———数字电路模拟程序1、2与第一次课堂测验总结
  • 传统统计 “手忙脚乱” VS 虎贲等考 AI “一键洞察”:数据分析的革命性分水岭
  • document.querySelector在电商网站中的5个实战应用
  • SK海力士×NVIDIA联手,AI NAND性能狂飙30倍!
  • C 标准库 - <locale.h>
  • 单片机芯片] CH32V307 支持手机的虚拟U盘实现拖拽固件升级
  • 【规范驱动的开发方式】之【spec-kit】 的安装入门指南
  • 基于ipsec的医院网络规划设计与实现
  • 电商评论分析实战:Java + NLP 大模型,从 10 万条评论中自动提取“用户槽点”
  • ISCTF2025-病毒分析
  • [数据结构/Java] 数据结构之循环队列
  • 检索增强生成(RAG)技术原理深度解析:突破大模型知识边界的范式革命
  • 基于springboot的技术博客交流系统的设计与实现
  • 基于springboot的运动服服饰销售购买商城系统
  • 英语口语资源合集
  • 如何用DSPy优化RAG prompt示例