算法竞赛>力扣>周赛 | weekly-contest-455

原文链接:算法竞赛>力扣>周赛 | weekly-contest-455

3591.检查元素频次是否为质数

解题思路

统计每个元素出现的次数,判断各次数是否为质数。由于次数<=100,可用试除法判断。

代码实现

bool isPrime(int x) {if (x < 2)return false;for (int i = 2, k = sqrt(x); i <= k; i++)if (x % i == 0)return false;return true;
}bool checkPrimeFrequency(vector<int>& nums) {unordered_map<int, int> mp;for (int v : nums) mp[v]++;for (auto [k,v] : mp)if (isPrime(v))return true;return false;
}

时间复杂度 O ( n 2 ) O(n^2) O(n2),空间复杂度 O ( 1 ) O(1) O(1)

3592.硬币面值还原

解题思路

总金额 i 一定是由小于等于 i 的硬币凑成的。

已给出每种金额的方案数 numWays[i],如果集合存在,则一定是唯一的。那么,需要做的就是去构造这个集合。

不妨,从小到大考虑每种金额的硬币 i,是否需要硬币 i 呢?

设已考虑的硬币能凑成金额 i 的方案数为 dp[i],金额 i 的事实方案数为 numWays[i]。

如果 dp[i]<numWays[i],那么就需要将硬币 i 考虑进来(再挣扎一下,看能否达到 numWays[i],实际上金额 i 只会增加一种方案)。

将硬币 i 考虑进来后,需要更新各金额的方案数。

检查 dp[i] 与 numWays[i] 是否相等,如果不相等,说明不存在满足条件的集合。

  • 若 dp[i]<numWays[i],说明即便是挣扎后依旧无法满足要求。
  • 若 dp[i]>numWays[i],说明在满足 numWays[1:i-1] 的前提下,金额 i 的方案数已超过 numWays[i],后续更无法满足要求。

代码实现

vector<int> findCoins(vector<int>& numWays) {int n = numWays.size();vector<int> dp(n + 1, 0), &v = numWays, cs;dp[0] = 1;for (int i = 1; i <= n; i++) {if (v[i - 1] > dp[i]) {cs.push_back(i);for (int j = i; j <= n; j++)dp[j] += dp[j - i];}if (v[i - 1] != dp[i])return {};}return cs;
}

时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( n ) O(n) O(n)

3593.使叶子路径成本相等的最小增量

解题思路

根节点已经固定为节点 0。

最终需要使得根节点到所有叶子节点的成本相等,记这个成本为目标成本,这个目标成本是多少呢?由于每个节点的成本不能减少,所以目标成本应该越小越好,小一点,需要增加成本的节点就可能少一点。由于每个节点的成本不能减少,目标成本不能小于根节点到叶子节点的最大成本。综上,目标成本为根节点到叶子节点的最大成本。换句话说,根节点的目标成本为根节点到叶子节点的最大成本。

最终,对于任意节点 i,其到其各叶子节点的成本均相等,记该成本为预期成本。特别的,根节点的预期成本即为上述目标成本。

成本应该尽可能加在上面的节点,这样可以作用于更多的路径。

对于节点 i,设其预期成本为 tc,节点 i 应该加多少成本呢?应尽可能多加,设加的成本为 ac,其各子节点到叶子节点的成本的最大值为
cc,则需要满足 cost[i]+cc+ac≤tc,故 ac 的最大值为 tc-(cost[i]+cc)。

综上所述,首先计算得到目标成本,再计算得到 cc,最终便可确定 ac,ac 为 0 说明当前节点不需要增加成本。

代码实现

int minIncrease(int n, vector<vector<int>>& edges, vector<int>& cost) {typedef long long ll;int m = edges.size();// 建图vector<int> h(n + 1, -1), e((m << 1) + 1), ne((m << 1) + 1);int idx = 0;auto add = [&](int a, int b) {e[idx] = b, ne[idx] = h[a], h[a] = idx++;};for (auto v : edges) add(v[0], v[1]), add(v[1], v[0]);// ms[i] 节点i的子节点到叶子节点的距离的最大值vector<ll> ms(n);// 计算每个节点到叶子节点的最大距离function<ll(int, int)> dfs1 = [&](int x, int p) {ll mc = 0;for (int i = h[x]; ~i; i = ne[i]) {if (e[i] == p)continue;mc = max(mc, dfs1(e[i], x));}ms[x] = mc;return cost[x] + mc;};// 根节点到叶子节点的距离的最大值ll mc = dfs1(0, -1);// 应该尽可能地往当前节点加,减轻子孙节点的压力int cnt = 0;function<void(int, int, ll)> dfs2 = [&](int x, int p, ll tc) {if (cost[x] + ms[x] < tc)cnt++;for (int i = h[x]; ~i; i = ne[i]) {if (e[i] == p)continue;dfs2(e[i], x, ms[x]);}};dfs2(0, -1, mc);return cnt;
}

时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( n ) O(n) O(n)

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

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

相关文章

Vue 2快速实现px转vw适配

Vue 2 Vue CLI 项目 px 转 vw 完整使用指南 &#x1f4cb; 概述 本指南详细介绍如何在 Vue 2 Vue CLI 项目中使用 postcss-px-to-viewport-8-plugin 插件&#xff0c;实现自动将 px 单位转换为 vw 单位的响应式设计。 &#x1f680; 第一步&#xff1a;插件安装 1.1 安装…

Android MVVM模式介绍

一、介绍 1.Model(模型) Model代表应用程序的数据和业务逻辑。它负责处理数据的获取、存储和更新&#xff0c;例如从数据库中检索数据或通过网络请求获取数据。Model通常是与UI无关的部分&#xff0c;因此可以独立测试和复用。 2. View&#xff08;视图&#xff09; View是用…

WHAT - React Native 的 Expo Router

文章目录 核心定义核心理念核心功能解析&#xff08;Features&#xff09;1. Native2. Shareable3. Offline-first4. Optimized5. Iteration6. Universal7. Discoverable 总结示例&#xff1a;页面结构如何变成导航&#xff1f; 原文&#xff1a;https://docs.expo.dev/router/…

XML读取和设置例子

在Qt C中&#xff0c;可以使用Qt的 QDomDocument类来读取、更新和保存XML文件。这个类提供了对XML文档的强大操作能力&#xff0c;支持通过DOM&#xff08;文档对象模型&#xff09;对XML进行读取、修改、添加和删除节点等操作。 下面是一个详细的例子&#xff0c;演示如何在Qt…

ubuntu 远程桌面 xrdp + frp

经测试VNC启动桌面&#xff0c;并非常规的桌面。 不如RDP好用。因此不用VNC server 一类。 直接安装xrdp 实现UBUNTU 到UBUNTU 桌面的远程共享。 sudo apt install xrdpsudo systemctl start xrdp查看状态&#xff1a; sudo systemctl status xrdp ● xrdp.service - xrdp d…

el-table表头添加说明

1、el-table-column添加render-header 2、编写render函数 renderTipsHeader(h, { column }, item) {return h(span,[h(span, column.label),h(el-tooltip,{props:{effect:dark,content:item.headertip,placement:top},},[h(i, {class:el-icon-question,style:color:#C0C4CC;mar…

【AI论文】MultiFinBen:一个用于金融大语言模型评估的多语言、多模态且具备难度感知能力的基准测试集

摘要&#xff1a;近期&#xff0c;大型语言模型&#xff08;LLMs&#xff09;的进展加速了金融自然语言处理&#xff08;NLP&#xff09;及其应用的发展&#xff0c;然而现有的基准测试仍局限于单语言和单模态场景&#xff0c;往往过度依赖简单任务&#xff0c;无法反映现实世界…

使用 .NET Core+GcExcel,生成 Excel 文件

引言 在当今数字化办公和数据处理的大环境下&#xff0c;在线生成 Excel 文件成为了许多企业和开发者的需求。.NET Core 作为一个跨平台的开源框架&#xff0c;具有高效、灵活等特点&#xff0c;而 GcExcel 是一款功能强大的 Excel 处理组件。将二者结合&#xff0c;可以方便地…

【代码解析】opencv 安卓 SDK sample - 1 - HDR image

很久没有写安卓了&#xff0c;复习复习。用的是官方案例&#xff0c;详见opencv-Android-sdk 包 // 定义包名&#xff0c;表示该类的组织路径 package org.opencv.samples.tutorial1;// 导入所需的OpenCV和Android类库 import org.opencv.android.CameraActivity; // OpenCV…

Web中间件性能调优指南:线程池、长连接与负载均衡的最佳实践

目录 引言一、Web容器线程池配置不当1.1 线程池参数的核心作用与影响1.2 线程池大小计算模型1.3 动态调优实践 二、Keep-Alive机制配置缺陷2.1 Keep-Alive的工作原理2.2 典型配置问题与影响2.3 优化配置建议 三、负载均衡策略缺失3.1 负载均衡的核心价值3.2 主流负载均衡算法对…

15个AI模拟面试平台 和 简历修改 / 真人面试平台

对15个AI模拟面试平台的详细分析&#xff0c;每个平台都将按照统一的框架进行评估。 补充重要的&#xff1a; 【1】AMA interview 听说最好&#xff0c;最贵 1. Final Round AI 网址: https://www.finalroundai.com/ 功能深度剖析: Final Round AI 提供了一套全面的求职工具…

开始使用 Elastic AI Assistant for Observability 和阿里 Qwen3

这篇文章是继之前的文章 “在本地电脑中部署阿里 Qwen3 大模型及连接到 Elasticsearch” 的续篇。如果你还没有部署好自己的 Qwen3&#xff0c;那么请阅读之前的那篇文章来安装好环境&#xff0c;然后再继续今天练习。在今天的文章中&#xff0c;我们将展示如何结合 Qwn3 和 El…

稳定币技术全解:从货币锚定机制到区块链金融基础设施

引言&#xff1a;稳定币的技术定位 根据国际清算银行&#xff08;BIS&#xff09;2025年定义&#xff1a;稳定币是以法定资产或算法机制维持价值稳定的区块链代币&#xff0c;其本质是传统金融与加密技术的接口层。 核心价值&#xff1a;解决加密货币波动性问题 → 成为DeFi生态…

syncthing忘记密码怎么办(Mac版)?

一、问题描述 syncthing安装在Mac端&#xff0c;更改原同步文件夹的路径&#xff0c;需要重新设计同步文件&#xff0c;设置了密码且忘记密码。未看见忘记密码的选项。 网上查询解决方案&#xff0c;发现只能通过修改配置文件才能继续正常访问。但是并没有在建议路径中找到配置…

半导体FAB中的服务器硬件故障监控与预防全方案:从预警到零宕机实战

&#x1f4ca; 服务器硬件故障监控与预防全方案&#xff1a;从预警到零宕机实战 关键词&#xff1a;SMART监控 RAID预警 IPMI传感器 性能基线 Prometheus Zabbix 高可用架构 一、硬件故障前的7大预警信号&#xff08;附关联工具&#xff09; 故障类型关键指标监控工具预警阈值…

一分钟了解Transformer

一分钟了解Transformer A Minute to Know About Transformer By JacksonML 1. Transformer是什么&#xff1f; Transformer模型是一种神经网络&#xff0c;它通过学习上下文及其含义&#xff0c;跟踪序列数据中&#xff08;如本句中的单词&#xff09;中的关系。Transforme…

【Ubuntu学习】嵌入式编译工具链熟悉与游戏移植

目录 一、Ubuntu 系统编译 MININIM 源码 1. 环境准备与依赖配置 2. 编译 Allegro5.2.5 引擎 ​编辑 3. 编译 MININIM 源码 4. 故障解决 5. 打包与迁移 二、嵌入式平台编译实践 1. 树莓派 3B 编译 MININIM 2. Android 平台交叉编译 三、树莓派 3B 流水灯实验&#xf…

川翔云电脑全新上线:三维行业高效云端算力新选择

一、核心定位与优势 云端虚拟工作站服务 依托云端高性能 CPU/GPU 集群&#xff0c;提供远程桌面服务&#xff0c;支持普通设备运行专业软件。 按需付费模式&#xff1a;无需采购高端硬件&#xff0c;大幅降低成本投入。生态协同优势&#xff1a;与渲染 101 同属母公司&#…

百面Bert

百面Bert Q1. Bert与Transformer有什么关系 Bert是基于Transformer架构中的Encoder进行搭建的。 具体来说&#xff0c;Bert的核心组件是几个Encoder layer的堆叠。Encoder layer中&#xff0c;也是两个子层&#xff0c;分别是注意力层和intermediate层&#xff08;Bert中的叫…

Docker Compose与私有仓库部署

目录 一. Docker 重启策略 二. Docker Compose工具的应用 1. 什么是 Docker compose 2. Docker compose 的安装 3. 编辑文件格式及编写注意事项 4. docker-compose的基本用法 三. Harbor私有仓库 1. 什么是Harbor 2. Harbor 的优势 3. Harbor 的构成 四. 部署Harbor…