lc442

news/2025/3/26 7:52:36/文章来源:https://www.cnblogs.com/PeachyGalaxy/p/18788143

lc442

链接

1

题目大意

有一个 \(n X n\) 的网格,每个格子可以装一个重量 恰好\(w\) 的箱子,总重量不能超过 \(max\)

返回可以装到船上的 最大 箱子数量。

思路

如果没有 \(n\) 的限制,最多可以装的箱子数是 \(max / w\) ,但是总个数要小于等于 \(n * n\),所以它们取 \(min\)

代码

class Solution {
public:int maxContainers(int n, int w, int ma) {int res = n * n;int u = ma / w;return min(u, res);}
};

2

题目大意

有一个 \(n X m\) 二维整数数组 \(p\),以及一个整数 \(k\)

定义一个函数 \(intersect(a, b)\),它返回b数组 \(a\)\(b\)相同数字的种类个数

构造一个 无向图,其中每个索引 i 对应 p[i]。如果且仅当 intersect(p[i], p[j]) >= k(其中 i 和 j 的范围为 [0, n - 1] 且 i != j),节点 i 和节点 j 之间有一条边。

返回结果图中 连通分量 的数量。

思路

要求连通分量的数量,那么一个节点属于一个连通块之后,就不可能属于另一个连通块,所以在一个点被遍历之后就不能继续遍历

在写inter函数寻找相同元素的种类时为了避免多次计算,可以找到一个之后,就把它从被寻找的数组中删除

建图的时候,直接将不同元素种类的下标放在当前下标的数组中,形成对应关系

最后再一个一个遍历

代码

class Solution {
public:int inter(vector<int>& a, vector<int>& b) {unordered_set<int> res(a.begin(), a.end()), ans;int cu = 0;for(auto& u : b) {if(res.count(u)) {res.erase(u); //防止重复cu++;}}return cu;}int numberOfComponents(vector<vector<int>>& g, int k) {int n = g.size(), m = g[0].size();vector<int> st(110);int cnt = 0;vector<int> d[110];for(int i = 0; i < n; i++) {for(int j = i + 1; j < n; j++) {if(inter(g[i], g[j]) >= k) d[i].push_back(j), d[j].push_back(i);}}function<void(int)> dfs = [&](int x) {st[x] = 1;for(auto& u : d[x]) {if(!st[u]) dfs(u);}};for(int i = 0; i < n; i++) {if(!st[i]) {dfs(i);cnt++;}}return cnt;}
};

3

题目大意

给你两个长度分别为 \(n\)\(m\) 的整数数组 \(q\)\(w\)

在一个实验室里,有 \(n\) 个巫师,他们必须按顺序酿造 \(m\) 个药水。每个药水的法力值为 \(w[j]\)并且每个药水 必须 依次通过 所有 巫师处理,才能完成酿造。第 i 个巫师在第 j 个药水上处理需要的时间为 \(time = q[i] * w[j]\)

药水在当前巫师完成工作后 必须 立即传递给下一个巫师并开始处理。这意味着每个巫师在药水到达时 马上 开始工作。

返回酿造所有药水所需的 最短 总时间。

思路

  • 巫师要完成当前这瓶药水的 前提前一个巫师已经完成这瓶 并且 这个巫师已经完成上一瓶药水 -- 正推实现

  • 保证时间连续,就要从最后一个巫师来倒推,倒数第二个巫师的完成时间,就是最后一个巫师的时间减去酿造时间 -- 倒推实现

代码

1)

class Solution {
public:using ll = long long;long long minTime(vector<int>& q, vector<int>& w) {int n = q.size(), m = w.size();vector<ll> s(n);for(int i = 0; i < m; i++) {ll u = 0; //u表示的就是前一个巫师的完成时间for(int j = 0; j < n; j++) {u = max(u, s[j]) + q[j] * w[i]; //这里s[j]表示的是第j个巫师完成上一瓶药水的时间,取最大值,确保都完成}s[n - 1] = u;//倒推使得时间连续for(int j = n - 2; j >= 0; j--) {u -= q[j + 1] * w[i];s[j] = u;}}return s[n - 1];}
};

2)

class Solution {
public:using ll = long long;long long minTime(vector<int>& q, vector<int>& w) {int n = q.size(), m = w.size();vector<ll> f(n + 2);for(int i = 1; i <= m; i++) {//正推for(int j = 1; j <= n; j++) {f[j] = max(f[j - 1], f[j]) + q[j - 1] * w[i - 1];}//倒推for(int j = n - 1; j > 0; j--) {f[j] = f[j + 1] - q[j] * w[i - 1];}}return f[n];}
};

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

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

相关文章

c语言分支与循环基础

实验任务一 问题1:生成一个1到100的随机整数 问题2:使输出的整数宽度为4位,不足时在前面补0 问题3:循环生成五个1到100的随机整数,与固定前缀组合后输出类似学员编号的内容实验任务2 问题一:在一次购买流程结束后,清除本次购买的总价,下次运行能重新计算。去掉的话,总…

梯度方差的概念

梯度方差的概念 内容 在深度学习中,梯度方差(Gradient Variance) 是一个关键概念,它直接影响模型的训练稳定性和收敛速度。以下用通俗的语言和实际例子解释它的含义、作用及影响。1. 什么是梯度方差?定义: 梯度方差表示 不同批次数据计算出的梯度之间的波动程度。 如果每…

解决方案 | 如何安全可靠地更改win10的C盘用户名

有的朋友可能最开始由于不知道使用中文名在编程中的各种bug,从而将自己的系统用户名设置成了中文名或者各种奇怪符号的名字,导致在英文编程的时候或者使用英文软件的时候可能出错。为了解决这个问题,网上的文章写得又臭又长,生怕别人看懂学到了技术。本文目的:实现原用户名…

20244106 实验一《Python程序设计》实验报告

20244106 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级:2441 姓名:孙诗棋 学号:20244106 实验教师:王志强 实验日期:2025年3月20日 必修/选修: 公选课 1.实验内容熟悉Python开发环境; 练习Python运行、调试技能; 编写程序,练习变量和类型…

Nature Communications | 单细胞表观图谱破解颅神经发育疾病非编码变异之谜

摘要总结 这篇文章是2024年9月发表在《Nature Communications》杂志上的一篇研究,标题为“A cell type-aware framework for nominating non-coding variants in Mendelian regulatory disorders”。这篇文章通过整合小鼠胚胎颅运动神经元的单细胞染色质可及性、组蛋白修饰和基…

IOC容器启动及Bean生成流程

目录 一、容器启动IOC启动流程重点二、扫描并注册BeanDefination加载并过滤资源注册BeanDefination三、BeanFactory后置处理 四、注册Bean后置处理器 五、遍历BeanDefination,实例化单例BeanpreInstantiateSingletonsdoGetBean(我们只关注单例)createBean实例化前执行doCrea…

关于QQ提示非官方正版应用

笔者是magisk+lsp+zygisk+shamiko环境,依然是被制裁了,momo检测只有Bootloader未锁定。 也没想在手机上登录QQ(已经摆烂,反正现在工作了,基本都用微信了),只是想在手机打两把王者,登录王者时选择用ipad扫码登录(只是授权登录) 这时候提示我 sign of app is error(100…

苍穹外卖-day04

day-04 25-3-20 新增套餐 需求分析&设计业务规则套餐名称唯一 套餐必须属于某个分类 套餐必须包含菜品 名称、分类、价格、图片为必填项 添加菜品窗口需要根据分类类型来展示菜品 新增的套餐默认为停售状态接口设计(共涉及到4个接口):根据类型查询分类(已完成) 根据分…

提示词工程师自白:我如何用一个技巧解放自己的生产力

“在AI时代的交响乐中,提示词工程师是默默无闻却至关重要的指挥家,用精心编织的语言指引大模型这个智能巨兽创造出人类思维的奇迹。” AI粉嫩特攻队,2025年3月22日。 自从新的生产范式诞生以来,我的工作中多了一项新身份——提示工程师。 在不同的大语言模型之间穿梭,寻求…

20244123 实验一《Python程序设计》实验报告

20244123 2024-2025-2 《Python程序设计》实验x报告 课程:《Python程序设计》 班级: 2441 姓名: 邓淑怀 学号:20244123 实验教师:王志强 实验日期:2025年3月20日 必修/选修: 公选课 1.实验内容 (1)熟悉Python开发环境; (2)练习Python运行、调试技能; (3)编写程序…