牛客刷题-Day15

news/2025/10/20 16:19:27/文章来源:https://www.cnblogs.com/Cocoicobird/p/19152936

牛客刷题-Day15

今日刷题:\(1011-1015\)

1011 小A与任务

题目描述

小A手头有 \(n\) 份任务,他可以以任意顺序完成这些任务,只有完成当前的任务后,他才能做下一个任务。
\(i\) 个任务需要花费 \(x_i\) 的时间,同时完成第 \(i\) 个任务的时间不能晚于 \(y_i\),时间掌控者向小A提出了一个条件:如果完成第 \(i\) 个任务的时间本应是 \(t\),但小A支付 \(m\) 个金币的话,他可以帮助小A在 \(t−m×z_i\) 时刻完成第 \(i\) 个任务,\(z_i\) 是时间参数,会在输入中给出。
小A想按时完成所有任务,请你帮他制定一个花费金币最少的方案。
注意:不能使得某个任务的花费时间小于 \(0\),花费的金币可以不是整数。

输入描述

第一行一个整数 \(n\) ,表示小A的任务数量。
接下来 \(n\) 行,每行三个整数,分别表示 \(z_i,x_i,y_i\)

输出描述

一行一个实数,表示小A最少需要花费的金币数,四舍五入保留一位小数。

示例

输入

5
1 1 2
1 1 3
1 2 4
1 1 4
1 2 5

输出

2.0

说明
\(1\) 时刻完成第一个任务,\(2\) 时刻完成第二个任务,\(4\) 时刻完成第三个任务,花费 \(1\) 金币在 \(4\) 时刻完成第四个任务,花费 \(1\) 金币在 \(5\) 时刻完成第五个任务。

备注

\(1≤n≤2×10^5\)
\(1≤x_i,z_i≤3×10^3\)
\(1≤y_i≤10^5\)

解题思路

按照要求结束时间从小到大排序。
首先考虑完成当前任务需要的结束时间 \(sum\),如果超时,则需要花费金币减少耗费的时间,减少相同的时间,时间参数越大花费的金币越少。

C++ 代码

#include <bits/stdc++.h>
using namespace std;
const int N = 200010;int n;
struct Node {int x, y, z;
} a[N];
priority_queue<pair<int, int>> q;bool cmp(Node a, Node b) {return a.y < b.y;
}int main() {scanf("%d", &n);for (int i = 1; i <= n; i++)scanf("%d%d%d", &a[i].z, &a[i].x, &a[i].y);sort(a + 1, a + n + 1, cmp); // 按照结束时间排序int sum = 0;double ans = 0;for (int i = 1; i <= n; i++) {sum += a[i].x;q.push({a[i].z, a[i].x});while (sum > a[i].y) {auto task = q.top();q.pop();int delta = min(sum - a[i].y, task.second);ans += (double) delta / task.first;sum -= delta;task.second -= delta;if (task.second) q.push(task);}}printf("%.1lf", ans);return 0;
}

1014 指纹锁

题目描述

HA实验有一套非常严密的安全保障体系,在HA实验基地的大门,有一个指纹锁。该指纹锁的加密算法会把一个指纹转化为一个不超过 \(1e^7\) 的数字,两个指纹数值之差越小,就说明两个指纹越相似,当两个指纹的数值差 \(≤k\) 时,这两个指纹的持有者会被系统判定为同一个人。
现在有 \(3\) 种操作,共 \(m\) 个,
操作 \(1\)add x,表示为指纹锁录入一个指纹,该指纹对应的数字为 \(x\),如果系统内有一个与 \(x\) 相差 \(≤k\) 的指纹,则系统会忽略这次添加操作;
操作 \(2\)del x,表示删除指纹锁中的指纹 \(x\),若指纹锁中多个与 \(x\) 相差 \(≤k\) 的指纹,则全部删除,若指纹锁中没有指纹 \(x\),则可以忽略该操作;
操作 \(3\)query x,表示有一个持有指纹 \(x\) 的人试图打开指纹锁,你需要设计一个判断程序,返回该人是否可以打开指纹锁(只要 \(x\) 与存入的任何一个指纹相差 \(≤k\) 即可打开锁)。
初始状态,指纹锁中没有任何指纹。

输入描述

第一行有 \(2\) 个正整数 \(m\)\(k\)
接下来 \(m\) 行,每行描述一种操作:add xdel xquery x

输出描述

对于每个 query 操作,输出一行,包含一个单词 YesNo,表示该人是否可以打开指纹锁。

示例1

输入

4 3
add 1
add 10
query 5
query 4

输出

No
Yes
示例2

输入

4 3
add 1
query 4
del 1
query 4

输出

Yes
No
示例3

输入

6 3
add 10
query 10
add 5 
query 5
del 7		//系统将指纹10和指纹5全部删除
query 8

输出

Yes
Yes
No

备注

对于 \(100\%\) 的测试数据:\(1 ≤ k,m ≤ 1000000\)
数据量较大,注意使用更快的输入输出方式。

解题思路

重写 \(Set\) 判重和排序。

C++ 代码

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;int m, k, x;
string op;struct cmp {bool operator()(int a, int b) const {if (abs(a - b) <= k)return false;elsereturn a < b;}
};set<int, cmp> s;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cin >> m >> k;while (m--) {cin >> op >> x;if (op == "add") {if (s.find(x) == s.end())s.insert(x);} else if (op == "del") {if (s.find(x) != s.end())s.erase(x);} else {if (s.find(x) != s.end())puts("Yes");elseputs("No");}}return 0;
}

1015 新建 Microsoft Office Word 文档

题目描述

\(CSL\) 正在学习《计算机办公自动化》文件的建立与删除。
\(CSL\) 发现,当他新建一个 \(word\) 文档时,会得到一个名为"新建 Microsoft Office Word 文档.doc"的文件,再新建一个,则名为"新建 Microsoft Office Word 文档(2).doc",再新建,便是"新建 Microsoft Office Word 文档(3).doc"。不断新建,编号不断递增。倘若他已经新建了三个文档,然后删除了"新建 Microsoft Office Word 文档(2).doc",再新建一个就又会得到一个"新建 Microsoft Office Word 文档(2).doc"。
严格来说,\(Windows\) 在每次新建文档时,都会选取一个与已有文件编号不重复的最小正整数作为新文档的编号。
现在,请你编程模拟以上过程,支持以下两种操作:
New:新建一个 \(word\) 文档,反馈新建的文档的编号;
Delete id:删除一个编号为 \(id\)\(word\) 文档,反馈删除是否成功。
初始时一个文件都没有,"新建 Microsoft Office Word 文档.doc"的编号算作 \(1\)

输入描述

第一行一个正整数n表示操作次数,接下来 \(n\) 行,每行表示一个操作。若该行为 New,则表示新建,为 Delete id 则表示要删除编号为 \(id\) 的文档,其中 \(id\) 为一个正整数。操作按输入顺序依次进行。操作次数不超过 \(100000\),删除编号的数值不超过 \(100000\)

输出描述

对于输入的每一个操作,输出其反馈结果。对于新建操作,输出新建的文档的编号;对于删除操作,反馈删除是否成功:如果删除的文件存在,则删除成功,输出 Successful,否则输出 Failed

示例

输入

12
New
New
New
Delete 2
New
Delete 4
Delete 3
Delete 1
New
New
New
Delete 4

输出

1
2
3
Successful
2
Failed
Successful
Successful
1
3
4
Successful

解题思路

模拟。用小根堆保存删除过的文档序号。

C++ 代码

#include <bits/stdc++.h>
using namespace std;
const int N = 100010;int n, id, idx;
string op;
priority_queue<int, vector<int>, greater<int>> deleteIds;
map<int, int> files;int main() {cin >> n;for (int i = 1, pos = 0; i <= n; i++) {cin >> op;if (op == "New") {if (deleteIds.empty()) {files[++pos] = 1;printf("%d\n", pos);} else {id = deleteIds.top();files[id] = 1;deleteIds.pop();printf("%d\n", id);}} else {cin >> id;if (files[id]) {files[id] = 0;deleteIds.push(id);puts("Successful");} else {puts("Failed");}}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/941323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年青海视频号运营服务商权威推荐榜:专业内容策划与精准流量投放口碑之选

2025年青海视频号运营服务商权威推荐榜:专业内容策划与精准流量投放口碑之选 在数字经济蓬勃发展的今天,视频号作为内容传播与商业转化的重要阵地,已成为企业品牌建设与营销推广的核心渠道。青海地区依托独特的文化…

数据结构学习(1)——指针、结构体、链表(C语言) - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

LVDS硬件知识 - 指南

LVDS硬件知识 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

task 1 improved

task 1 improved#include <stdio.h> #include <stdlib.h> #include <time.h>#define N 5 #define N1 80 #define N2 35 int main(){int cnt;int r;//random_major,random_no;srand(time(NULL)); //n…

rhel v7 v8 local repository setting

---------v7----------- echo -e "[RHEL7-ELS]" > /etc/yum.repos.d/web.repo echo -e "name=RHEL7-ELS" >> /etc/yum.repos.d/web.repo echo -e "enabled=1" >> /etc/y…

2025 年仿石漆厂家最新推荐榜,技术实力与市场口碑深度解析,精选优质企业助力选购水包砂/冠晶石/外墙/多彩/批刮仿石漆厂家推荐

引言 当前仿石漆行业蓬勃发展,但市场品牌繁杂、产品质量良莠不齐,采购方在挑选时常常面临诸多难题。部分产品仿石效果不佳、性能不稳定,甚至存在环保隐患,不仅影响建筑外观与使用寿命,还可能危害环境与人体健康。…

wsl连接 USB 设备

连接 USB 设备2025/06/11本指南将演练使用 USB/IP 开源项目 usbipd-win 将 USB 设备连接到 WSL 2 上运行的 Linux 分发版所需的步骤。 在 Windows 计算机上配置 USB/IP 项目可以实现常见的开发者 USB 场景,例如刷写 A…

完整教程:轻量服务器创建mysql,并配置远程连接

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【完整版】vcruntime140_1.dll缺失?3步快速修复教程(含官方修复工具+系统适配指南)

当你在运行 Photoshop、Premiere、WPS 或游戏时出现“由于找不到 vcruntime140_1.dll,无法继续执行代码”的提示,不要慌。本文详细讲解 vcruntime140_1.dll 文件的作用、缺失原因,并提供三种权威修复方案:微软官方…

linux 学习平台 arm+x86 搭建 - 详解

linux 学习平台 arm+x86 搭建 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monac…

如何系统化掌握 iOS 26 App 耗电管理,多工具协作

本文聚焦 iOS 26 App 耗电管理 /能耗监控 /后台唤醒优化主题,从电量下降速率、资源占用、后台任务、文件 IO/网络访问、版本差异等维度构建监控体系。结合多工具(Xcode Instruments、KeyMob 克魔、APM平台、文件工具…

user read only folder

setfacl -R -m u:iasloguser:r-x /scb/iads/gateway/log/ setfacl -R -m d:u:iasloguser:r-x /scb/iads/gateway/log/ d:u: is default ACL getfacl /scb/iads/gateway/log/

告别重复劳动,MonkeyCode 让你的开发团队拥有永动机

告别重复劳动,MonkeyCode 让你的开发团队拥有"永动机"作为一个在代码海洋里摸爬滚打了多年的开发者,我见过太多团队陷入这样的困境:代码审查耗时耗力、新人培养成本高昂、文档更新永远滞后、重复性工作占…

cpu for rhel8 on vmware

yum install sysstat -y systemctl start sysstat systemctl enable sysstat systemctl status sysstat tuned-adm list tuned-adm profile throughput-performance tuned-adm active echo 1 second,total 3 times mps…

CentOS7安装Python3.10环境

主要步骤:依赖=>下载=>编译=>配置 依赖  常见错误没有安装相关的依赖库The necessary bits to build these optional modules were not found:  _curses  _curses_panel  _dbm  _gdbm  _lzma  …

2025 年冷库板厂家最新推荐榜:前五优质生产商盘点,含聚氨酯 / 保温 / 阻燃板企业选购指南 聚氨酯夹心板/聚氨酯保温板厂家推荐

引言2025 年国内冷链行业持续扩容,生鲜电商、医药冷链等领域对冷库板的需求呈爆发式增长,然而市场上产品质量参差不齐,部分厂商存在导热系数不达标、阻燃性能不足等问题,采购方难以精准筛选优质供应商。新版冷库节…

自主进化的AI大模型架构设想(解决大模型时效性问题):知识网络的拓扑设计 - 详解

自主进化的AI大模型架构设想(解决大模型时效性问题):知识网络的拓扑设计 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

2025 年大连 AI 品牌最新推荐排行榜:甄选懂商业重实效的实力服务商大连Ai培训/大连Ai开发/大连Ai推广公司推荐

引言 随着 AI 技术加速渗透商业场景,大连本地企业对 AI 服务的需求呈爆发式增长,但行业乱象却让企业陷入选择困境:技术与商业脱节的服务导致 AI 工具沦为 “摆设”,缺乏实战指导的培训让企业学完仍无法落地,远程服…

2025 年 MacBook / 苹果电脑清理应用程序最新推荐榜单:精选适配 macOS 系统的高性能系统优化工具

引言 随着 MacBook 等苹果电脑在工作与生活中的广泛应用,用户对系统流畅度和存储空间管理的需求愈发迫切。长期使用后,电脑易堆积缓存、冗余文件,还可能遭遇恶意软件侵扰,导致运行卡顿、存储空间告急,而 macOS 自…

2025 生物质颗粒机厂家推荐榜:聚焦高效环保,山东博力达机械成优选​

随着 “双碳” 目标推进与环保政策趋严,生物质能作为可再生能源的核心组成部分,市场需求持续攀升,带动生物质颗粒机行业快速发展。据行业预测,2025 年中国生物质颗粒机市场规模将达到约 150 亿元人民币,年复合增长…