新闻详情

新闻详情

首页 / 资讯中心 / 详情

20047 武器强化

发布时间:2026/10/2 21:09:21来源:尧图网络
20047 武器强化
描述小杨有 n 种武器和 m 种强化材料。第 i 种强化材料会适配第 pi​ 种武器小杨可以花费 ci​ 金币将该材料对应的适配武器修改为任意武器。小杨最喜欢第 1 种武器因此他希望适配该武器的强化材料种类数严格大于其他的武器请你帮小杨计算为了满足该条件最少需要花费多少金币。输入描述第一行包含两个正整数 n,m含义如题面所示。之后 m 行每行包含两个正整数 pi​,ci​代表第 i 种强化材料的适配武器和修改花费。输出描述输出一个整数代表能够使适配第 1 种武器的强化材料种类数严格大于其他的武器最少需要花费的金币。样例输入 14 4 1 1 2 1 3 1 3 2样例输出 11提示解题思路本题的核心是让适配第 1 种武器的强化材料数量严格大于其他任意武器。初始时每种武器都有一定数量的强化材料适配其中第 1 种武器有 cnt[1] 个。为了让第 1 种武器胜出我们需要把其他武器的强化材料改配到第 1 种武器上同时也要考虑把原本适配第 1 种武器的材料改走的情况但通常不会这样做因为这会增加第 1 种武器的数量成本。一个直观的贪心策略是枚举最终第 1 种武器拥有的强化材料数量 x要求 x 严格大于其他所有武器的数量。对于每个武器 ii 1如果它当前的材料数量 cnt[i] 大于等于 x那么必须把其中 cnt[i] - x 1 个材料改配到第 1 种武器上花费为这些材料中修改费用最小的若干项之和。如果所有其他武器都满足数量小于 x则第 1 种武器还需要从剩余材料中补充到 x 个选择费用最小的材料进行补充。由于 n 和 m 最大均为 1000枚举 x 的范围为 1 到 m每次枚举需要 O(m log m) 的排序或堆操作总复杂度 O(m^2 log m)在数据范围内可以接受。参考代码#include bits/stdc.h using namespace std; typedef long long ll; int main() { int n, m; cin n m; vectorint p(m), c(m); vectorvectorint cost(n 1); for (int i 0; i m; i) { cin p[i] c[i]; cost[p[i]].push_back(c[i]); } for (int i 1; i n; i) { sort(cost[i].begin(), cost[i].end()); } ll ans LLONG_MAX; for (int x 1; x m; x) { ll cur 0; vectorint rest; for (int i 2; i n; i) { int sz cost[i].size(); if (sz x) { for (int j 0; j sz - x 1; j) { cur cost[i][j]; } for (int j sz - x 1; j sz; j) { rest.push_back(cost[i][j]); } } else { for (int j 0; j sz; j) { rest.push_back(cost[i][j]); } } } int need x - cost[1].size(); if (need 0) { if ((int)rest.size() need) continue; sort(rest.begin(), rest.end()); for (int j 0; j need; j) { cur rest[j]; } } ans min(ans, cur); } cout ans endl; return 0; }复杂度分析时间复杂度为 O(m^2 log m)其中对每种武器内部排序的复杂度为 O(m log m)枚举 x 的循环中每次需要 O(m log m) 的排序操作。空间复杂度为 O(n m)用于存储每种武器的材料费用。数据范围与提示对于 100% 的数据保证 1≤n,m≤10001≤pi​≤n1≤ci​≤109。子任务编号得分占比nm120%≤2≤1000220%≤1000≤2360%≤1000≤1000样例解释花费 1将第三种强化材料的适配武器由 3 改为 1。此时武器 1 有 2 种强化材料适配武器 2 和武器 3 都各有 1 种强化材料适配满足适配第 1 种武器的强化材料种类数严格大于其他的武器。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Python数据分析实战:从JSON到可视化自制Spotify年度听歌报告 2026/10/2 21:55:53

Python数据分析实战:从JSON到可视化自制Spotify年度听歌报告

每年年底 Spotify 都会准时送上一张 Wrapped 卡片,告诉你这一年你听了多少小时、哪个歌手被你循环最多。但说实话,每次看到那张图我都觉得不够——它只给你结论,不给你明细。比如我想知道"这一年里凌晨三点的我到底在循环什么歌"&q…

阅读更多 →
PVE网络配置实战:修改IP、网关、DNS及失联自救全攻略 2026/10/2 21:55:52

PVE网络配置实战:修改IP、网关、DNS及失联自救全攻略

说个我自己的经历。大概是两三年前,我第一次在一台淘汰下来的小主机上装好了Proxmox Virtual Environment(PVE),版本还是7.x。装完之后系统默认的管理IP是192.168.1.100,而我家的路由器网段是192.168.31.0/24&#xff…

阅读更多 →
小米手机页面反复重启?从启动模式搞懂排查自救方法 2026/10/2 21:55:49

小米手机页面反复重启?从启动模式搞懂排查自救方法

很多人第一次遇到小米手机“页面重新启动”这个问题时,第一反应是手机坏了,甚至直接拿去维修店。我最早接触这个情况是给家里人清理手机,结果误触了按键组合,屏幕一黑直接进了那个“手机连接电脑”的兔子画面,当时也吓…

阅读更多 →
中文命名实体识别实战:BERT+BiLSTM+CRF课设指南 2026/10/2 21:55:47

中文命名实体识别实战:BERT+BiLSTM+CRF课设指南

简介:这份资源面向计算机相关专业的本科生与课程设计学习者,提供一套基于BERTBiLSTMCRF的中文命名实体识别完整源码,适合作为毕业设计、期末大作业或NLP入门实战项目。项目采用预训练语言模型提取语义特征,结合双向LSTM与条件随机…

阅读更多 →
OpenClaw实战:从环境部署到Skills技能,打造个人AI自动化工作流 2026/10/2 21:55:37

OpenClaw实战:从环境部署到Skills技能,打造个人AI自动化工作流

1. OpenClaw 到底是什么,凭什么能替你干活早上八点五十一分,邮箱弹出一封只有一句话的邮件:“下班前把方案给我”。我打开终端,敲了一行命令:openclaw run "把上周六次会议纪要去重,提取待办&#xff…

阅读更多 →
Claude Code 跳过登录:API密钥与环境变量配置指南 2026/10/2 21:55:24

Claude Code 跳过登录:API密钥与环境变量配置指南

说实话,Claude Code 第一次在我终端里提示登录的时候,我的第一反应是:一个命令行工具,为什么会做到这种交互体验?后来我才明白,这套网页登录流程只是认证链条里的最末端。在它前面有环境变量密钥、会话令牌…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉