尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【题解】Atcoder ABC432 C

【题解】Atcoder ABC432 C
📅 发布时间:2026/6/18 7:46:39

思路

遇事不决先排个序。注意到如果要让所有人分得的糖果重量相等,那么糖更少的人需要的大糖更多。因每人分得糖果数量确定,所以总重量越大,每人需要的大糖数量就越多。为了让大糖总数最多,不妨给糖最少的人全分大糖,此时糖总重量就取到了上界。我们有了糖总重量,可以用二元一次方程组解出每个人需要的大糖数量,统计答案输出。如果不是正整数解,那么则无方案。

不过,该结论有一个漏洞:是否存在一种情况,使得糖最少的人不全分大糖有解,而全分大糖情况无解。我们考虑将糖最少的人的一颗小糖换成大糖会发生什么。将糖最少的人的一颗小糖换成大糖,相应地糖总重量增加了,其他的人也都需将一颗小糖换成大糖,该方案依然有解,直到糖最少的人的所有小糖都换成了大糖,方案一直有解。而且,其他人在换糖过程中将小糖耗尽的情况也不存在,因为他们的小糖数量不可能少余糖最少的人的小糖数量,否则他们的糖数量将少于糖最少的人。所以,如果糖最少的人不全分大糖有解,那么全分大糖的情况也一定有解。

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10;
int n,x,y,ans;
int a[N],sum;
signed main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>n>>x>>y;for(int i=1;i<=n;i++) cin>>a[i];sort(a+1,a+1+n);sum=a[1]*y;ans+=a[1];for(int i=2;i<=n;i++){int q;if(((sum-(a[i]*x))<0)||((sum-(a[i]*x))%(y-x))){cout<<-1;return 0;}q=(sum-(a[i]*x))/(y-x);ans+=q;}cout<<ans;return 0;
}

\((sum-a[i]\times x)\div (y-x)\) 即加减消元所推出的式子。

时间复杂度为 \(O(n\log n)\)。

相关新闻

  • 赶due党救急!论文降重2小时搞定,不熬夜
  • 计算机论文模板推荐:8大平台+AI修改工具
  • 期待回家,顺便写点年度总结

最新新闻

  • 2022 AI工程化落地实操指南:从大模型到可控生成与指令微调
  • MPC857T勘误文档解析:嵌入式开发中规避硬件设计陷阱的关键
  • 团队冲刺7
  • 文心5.0技术解剖:2.4万亿参数与原生全模态架构深度解析
  • 开关磁阻电机高压功率级设计:IGBT驱动与逐周期限流解析
  • 终极指南:OpenCore Legacy Patcher免费让老旧Mac焕发新生

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号