【LeetCode】3670. 沒有公共位的整數最大乘積 (SOSDP)

3670. 沒有公共位的整數最大乘積 - 力扣(LeetCode)

題目:

思路:

SOSDP

本題我們顯然不能枚舉每一個數對,n2 的復雜度顯然超時,所以考慮優化

我們考慮一個二進制數 mask,因為我們必須要選沒有任何公共位置的數才行,那么我們參考集合論,其實就是去找 ~mask 的子集中的最大值

那么顯然問題變為如何找子集的最大值,我們可以考慮動態規劃的思想,假設如果我們要找 mask 的子集最大值,那么是不是可以找 mask 所有子集的子集的最大值,以此類推,我們可以一步一步求出所有子集的最大值

具體的,我們定義 f[i] 為 i 的子集中的最大值,初始化 f[x] = x(如果含有 x),然后套板子即可

其實這就是板子的變形,從求前綴和變成了前綴最大值,具體實現看代碼

前綴和情況如下

//從地位向高位枚舉
for (int i = 0; i < k; i++) {//枚舉狀態for (int mask = 0; mask < (1 << k); mask++) {//判斷這一位有沒有,即是不是子集if (mask >> i & 1) f[mask] += f[mask ^ (1 << i)];}
}

代碼:

class Solution {
public:long long maxProduct(vector<int>& nums) {int mx = 0;for (auto& x : nums)mx = max(mx, x);int m = __lg(mx) + 1;mx = 1 << m;vector<int> f(mx,0);for (auto & x : nums)f[x] = x;for (int i = 0; i < m; i++) {for (int j = 0; j < mx; j++) {if (j >> i & 1) {f[j] = max(f[j], f[j ^ (1 << i)]);}}}long long ans = 0;for (auto& x : nums) {int buji = (mx - 1) ^ x;ans = max(ans, 1LL * x * f[buji]);}return ans;}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/97771.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/97771.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/97771.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Sping Web MVC入門

1.什么是Sping Web MVC1.1MVC定義2.什么是Spring MVC

LLM面試50問:NLP/RAG/部署/對齊/安全/多模態全覆蓋

太好了!下面按你點名的 6 大主題(NLP、檢索/RAG、部署、對齊、 安全、多模態)給出深度版答案 + 關鍵公式/推導 + 最小可跑示例代碼 + 常見坑。都盡量精煉到“拿來即用/面試可白板推導”的粒度。 NLP(架構、位置編碼、指令跟隨) 1) RoPE 長上下文與縮放 要點:RoPE 將位置…

計算機網絡技術(四)完結

七&#xff0c;虛擬局域網VLAN1&#xff0c;VLAN概述通過設置虛擬局域網來實現&#xff0c;pc之間實現快速安全通信。對比說明&#xff1a;之前交換機的廣播來實現通信&#xff0c;但同意也帶來了幾個問題&#xff0c;過大的廣播域&#xff0c;造成了帶寬的浪費&#xff0c;過大…

VibeVoice 部署全指南:Windows 下的挑戰與完整解決方案

VibeVoice 部署全指南&#xff1a;Windows 下的挑戰與完整解決方案 目標讀者&#xff1a;希望在本地部署 VibeVoice 進行文字轉語音&#xff08;TTS&#xff09;的開發者、研究人員或愛好者 關鍵詞&#xff1a;VibeVoice、FlashAttention-2、Windows 部署、CUDA 加速、FFmpeg、…

一次別開生面的Java面試

場景描述&#xff1a; 在一家知名互聯網大廠的面試室中&#xff0c;謝飛機&#xff0c;一個自信滿滿的程序員&#xff0c;正在經歷一場別開生面的Java面試。面試官以嚴肅的態度開始了這場技術問答。第一輪&#xff1a;基礎知識問答 面試官&#xff1a;"我們先從簡單的開始…

web自動化測試(selenium)

目錄 測試前的準備 驅動 安裝驅動管理 selenium庫 使用selenium編寫代碼 自動化測試常用函數 元素的定位 cssSelector xpath 查找元素 點擊/提交對象 模擬按鍵輸入 清除文本內容 獲取文本信息 獲取當前頁面標題和URL 窗口 切換窗口 窗口設置大小 屏幕截圖 …

民間藥方偏方網站整站源碼 帶數據PHP版

內容目錄一、詳細介紹二、效果展示1.部分代碼2.效果圖展示三、學習資料下載一、詳細介紹 民間藥方偏方網站整站源碼 帶數據PHP版 這是一個聚焦中國民間藥方的平臺。平臺設有搜索功能&#xff0c;方便用戶查找藥方&#xff0c;還對藥方進行了內科、外科、腫瘤等多類分類&#x…

C++ 條件變量,互斥鎖

C 中多線程編程的兩個核心同步原語&#xff1a;互斥鎖 (Mutex) 和 條件變量 (Condition Variable)。它們是實現線程間安全通信和協調的關鍵。1. 互斥鎖 (Mutex)核心概念互斥鎖用于保護共享數據&#xff0c;確保同一時間只有一個線程可以訪問該數據&#xff0c;從而避免數據競爭…

MySQL 8.0 窗口函數詳解:讓數據分析更簡單高效

在日常的數據分析工作中&#xff0c;我們經常需要對數據進行分組排序、計算移動平均值、統計累計求和等操作。在MySQL 8.0之前&#xff0c;這類需求通常需要編寫復雜的子查詢或連接查詢才能實現。而MySQL 8.0引入的窗口函數&#xff08;Window Functions&#xff09;極大地簡化…

【論文閱讀】DeepSeek-LV2:用于高級多模態理解的專家混合視覺語言模型

【論文閱讀】DeepSeek-LV2&#xff1a;用于高級多模態理解的專家混合視覺語言模型 文章目錄【論文閱讀】DeepSeek-LV2&#xff1a;用于高級多模態理解的專家混合視覺語言模型一、介紹二、模型結構三、數據建設**3.1 對齊****3.2 視覺語言預訓練數據****3.3 監督微調數據**四、訓…

一款為開發者而生的開源全棧LLMOps平臺

&#x1f680; 超越ChatGPT&#xff01;一款為開發者而生的全棧LLMOps平臺&#xff1a;LMForge完全指南 作為一名AI應用開發者&#xff0c;你是否也曾遇到過這些令人頭疼的問題&#xff1f; 成本失控&#xff1a;GPT-4的API賬單像雪片一樣飛來&#xff0c;卻不知道錢具體花在…

DeepL Translate在線工具測評:精準翻譯技術文檔與學術論文,支持多格式文檔上傳保留原格式

之前跟你們聊過幫著梳理代碼協作的 GitLens&#xff0c;今天換個偏向文檔翻譯的方向 —— 給你們安利一個在線 AI 翻譯工具「DeepL Translate」&#xff0c;官網地址是DeepL Translate: The worlds most accurate translator&#xff0c;它跟普通翻譯工具不一樣&#xff0c;翻技…

系統配置不是“樂高積木”:制造企業如何通過科學變更管理保障穩定運行

在制造業的數字化進程中&#xff0c;系統配置的穩定性常被忽視。作為一家制造企業的行政經理&#xff0c;我曾親歷這樣的場景&#xff1a;為應對生產波動&#xff0c;各部門頻繁要求調整ERP系統參數&#xff0c;結果導致庫存數據失真、訂單處理延遲&#xff0c;甚至引發客戶投訴…

vscode炒股插件-韭菜盒子AI版

基于vscode插件&#xff0c;原韭菜盒子3.15.0版本開發&#xff0c;新增選股寶快訊功能、AI投資助手、指定股票AI分析功能&#xff08;目前只針對A股&#xff09;&#xff0c;內置AI大模型助手功能&#xff0c;支持ai分析最新資訊、ai分析當日資訊&#xff08;讓ai隨時給你分析股…

Spring Cloud Config 核心原理

Spring Cloud Config 是 Spring Cloud 提供的一個用于集中化管理應用程序各個環境下的配置屬性的解決方案。它支持統一管理配置&#xff0c;并且可以在不重啟應用的情況下動態地更新配置信息&#xff0c;提高開發和運維效率。 主要特點 ? 集中管理配置&#xff1a;可以將不同環…

springboot ioc 控制反轉入門與實戰

Spring Boot3 IOC 項目地址https://gitee.com/supervol/loong-springboot-study&#xff08;記得給個start&#xff0c;感謝&#xff09;IOC 概述在 Spring Boot 3 中&#xff0c;IOC&#xff08;Inversion of Control&#xff0c;控制反轉&#xff09;是核心思想之一&#xff…

LangGraph 重要注意事項和常見問題

01. 數據狀態與歸納函數在前面的課時中&#xff0c;我們說過在 LangGraph 中 節點 在默認情況下返回的字典數據會將原始數據覆蓋&#xff0c;例如下面的代碼最終返回結果是 {"messages": [4]} 而不是 [1,2,3,4]&#xff0c;如下class MyState(TypedDict):messages: l…

避坑指南!解決Navicat運行SQL成功但沒有表的問題

在運行轉儲的SQL文件時&#xff0c;成功運行&#xff0c;試了很多辦法都不顯示出表。原因&#xff1a;當從一個高版本的 MySQL 數據庫導入數據到低版本的 MySQL 數據庫時&#xff0c;可能會遇到兼容性問題。因為高版本的 MySQL 可能支持 utf8mb4_0900_ai_ci&#xff0c;而低版本…

在 Elasticsearch 中使用用戶行為分析:使用 UBI 和 search-ui 創建一個應用程序

作者&#xff1a;來自 Elastic Eduard Martin 及 Alexander Dvila 通過一個實際示例學習如何在 Elasticsearch 中使用 UBI。我們將創建一個在搜索和點擊結果時生成 UBI 事件的應用程序。 想要獲得 Elastic 認證嗎&#xff1f;看看下一次 Elasticsearch Engineer 培訓什么時候開…

SpringBoot3中使用Caffeine緩存組件

SpringBoot3已經把EhCache從框架中刪除了&#xff0c;SpringBoot3默認的緩存組件為Caffeine&#xff0c;那么我們在SpringBoot3中如何去使用它了&#xff1f; 1.添加依賴 <dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>ca…