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

ACM下学期第五次周赛

C题拼数字

题目意思是给定一组数字,将这些数字拼到一起,然后组成一个最大的数字。

题目不是很难,只需要将元素组先排序再去从大到小依次输出即可,但是有一种特殊情况需额外考虑,如90和9这组数据,如果按照上面所说去拼,发现拼出来的909并没有990大,所以说只排序是不行的,所以我们需要自定义排序,去判断a,b拼成的数字大还是b,a拼成的数字大。还有一种特殊情况就是全是零,这种情况我们只需要输出0即可。(数据中没有考虑这个情况,故以下代码可以过)

#include <bits/stdc++.h> using namespace std; bool compare(const string &a, const string &b) { return a + b > b + a; } int main() { int n; cin >> n; vector<string> nums(n); for (int i = 0; i < n; ++i) { cin >> nums[i]; } sort(nums.begin(), nums.end(), compare); for(int i=0;i<n;i++) cout<<nums[i]; return 0; }

D题加和减

题目描述为给定一个数组,小红可以进行以下的操作:

每次操作可以让某个数加 1 或者某个数减 1 。
小红最多能进行 k 次操作。

要去小红操作结束后,该数组出现次数最多的元素次数尽可能多。

因为数可以随即加减,并无区间的限制,所以我们可以先进行排序,排完序之后我们就要模拟题目中的操作了,要如何确定统一变成某个数且成本控制在K之内呢?我们应该可以联想到,一个有序区间内将所有数变成中位数的代价是最小的,所以我们可以用双指针去确定区间,然后再定义中位数,将该区间内的所有数据,都变成中位数看看是需要多少次,并且使数量最多。这里用前缀和的原因是在计算区间内所有数据都变成中位数的时候,需要不断求和,所以如果不提前预处理求和,每次在循环内进行求和会导致时间超限。

计算中位数左边需要的次数公式为:a[mid] * (mid - left) - (pref[mid] - pref[left]))

mid-left 是计算中位数左边数据的个数;

计算中位数右边需要的次数公式为:(pref[right + 1] - pref[mid + 1]) - a[mid] * (right - mid)

同理,right-mid是计算 中位数右边数据的个数;

最后max去不断刷新最大个数;

最终输出ans;

#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ios::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr); int n; ll k; cin >> n >> k; vector<ll> a(n); for (int i = 0; i < n; ++i) cin >> a[i]; sort(a.begin(), a.end()); vector<ll> pref(n + 1, 0); for (int i = 0; i < n; i++) pref[i + 1] = pref[i] + a[i]; int ans = 0; int left = 0; for (int right = 0; right < n; ++right) { while (left <= right) { int mid = (left + right) / 2; ll cost = (a[mid] * (mid - left) - (pref[mid] - pref[left])) + ((pref[right + 1] - pref[mid + 1]) - a[mid] * (right - mid)); if (cost <= k) break; ++left; } ans = max(ans, right - left + 1); } cout << ans << "\n"; return 0; }
http://www.jsqmd.com/news/861394/

相关文章:

  • 2026年Q2太阳能路灯工程批发厂家综合排行一览:成都小区庭院灯、成都市政太阳能路灯、成都庭院灯定制、成都庭院灯工程批发选择指南 - 优质品牌商家
  • ViMax 为什么会冲上 GitHub Trending:AI 视频生成开始从“出片”转向“制片”
  • 利用Taotoken模型广场为特定任务选择性价比最优模型
  • 光化学烟雾箱搭建全攻略:从选型到出数据的完整指南
  • ChatGPT Plus 怎么购买?2026 开通教程
  • 【C++进阶】深入了解继承
  • IDEA 索引构建卡死在 99% 进度不动了如何强制重置?
  • 语音搜索 GEO 优化,口语化英文短句布局玩法
  • 本地能跑线上崩?MonkeyCode统一云端环境解决团队开发噩梦
  • 【深耕GEO服务,赋能数字升级——西安群蜂云计算,优质GEO服务领航者】
  • 深度解析DDoS攻击:运作机制与防御体系构建
  • 卖 MATLAB 工具箱,你的代码可能正被免费白嫖——聊聊商业化前的代码保护
  • 大模型实战:AgentScope ReActAgent 多智能体框架实战指南,小白程序员必备收藏!
  • Spark 从入门到部署:核心模块解析与 Yarn 模式实战指南
  • BOSCH SM50/100-T伺服驱动器
  • 《数据主权时代,企业协作需切换“私有模式”》
  • 【优化 v 2.7.5 版本】PC 端 Open Claw 一键部署详细教学
  • 家居建材营销新趋势:数字化、体验式与可持续方向-佛山鼎策创局破局增长咨询有限公司
  • ⾯向对象和集合编程题
  • 在鸿蒙上跑一个端侧大模型——不用连云端数据全在本地
  • Java Comparator深度解析:从底层原理到实战应用
  • 内存管理与垃圾回收原理及机器学习实验研究
  • 一篇文章讲清楚—Windows 电脑中 CMD 和 PowerShell 有啥区别
  • 从CRUD到AI大神:小白程序员5个月逆袭之路(收藏版)
  • WorkBuddy:一个面向内容创作的桌面自动化助手实践
  • 1794-ACN15适配器模块
  • ComfyUI v0.22.0 更新:工作流模板升级、音频与多模态增强、OpenAPI 文档完善、节点能力大幅扩展
  • 2026年4月制冷厂推荐:制冷机组、制冷设备品牌、南宁制冷、反应釜制冷设备、商丘制冷、太原制冷、安徽冷水机、安徽制冷选择指南 - 优质品牌商家
  • Agent 认知破局:从具象表象到交互本质
  • EPRO MMS6120振动检测模块