算法競賽>力扣>周賽 | 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
英文地址,請注明出處:http://en.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…