19921 多重背包

19921 多重背包

??難度:中等
🌟考點:動態規劃、背包問題
📖
在這里插入圖片描述

📚

import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;public class Main {static int N = 100010;public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int[] v = new int[2000*12]; // v w數組要開大一點,因為物品個數會增多,假如每個物品可以使用2000次int[] w = new int[2000*12]; // 總共有2000個物品,就要用2000 * log2(2000) ≈ 2000 * 12int[] dp = new int[200002];// 數據預處理int p = 1;for (int i = 1; i <= n; i++) {int V = sc.nextInt();int W = sc.nextInt();int C = sc.nextInt();int k = 1;while(C > k){v[p] = V * k;w[p] = W * k;C -= k;k *= 2;p++;}if(C > 0){v[p] = V * C;w[p] = W * C;p ++;}}// 01dpfor (int i = 1; i < p; i++) {  // 是j < p,不是是 j <= n,物品個數已經更新了,也不是<=p,因為多了一次p++for (int j = m; j >= v[i]; j--) {   // 是j >= v[i],不是是j >= 1,數組會越界dp[j] = Math.max(dp[j],dp[j - v[i]] + w[i]);}}System.out.println(dp[m]);}
}

??細節:v w數組要開大一點,因為物品個數會增多,假如每個物品可以使用2000次,總共有2000個物品,就要用2000 * log2(2000) ≈ 2000 * 12

🍎筆記
在這里插入圖片描述
多重背包,二進制優化
在這里插入圖片描述

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

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

相關文章

js逆向之斷點調試

1.XHR/提取斷點用法 當刷新頁面時候&#xff0c;有大量請求&#xff0c;并且你無法定位參數信息的時候&#xff0c;或者參數被混淆無法搜到&#xff0c;可以用該方法&#xff0c;該方法是會捕獲所有請求連接&#xff0c;然后我們通過連接過濾出自己想要的請求&#xff0c;然后…

基于32單片機的無人機直流電機閉環調速系統設計

標題:基于32單片機的無人機直流電機閉環調速系統設計 內容:1.摘要 本文針對無人機直流電機調速需求&#xff0c;設計了基于32單片機的無人機直流電機閉環調速系統。背景在于無人機應用場景不斷拓展&#xff0c;對電機調速精度和穩定性要求日益提高。目的是開發一套高精度、響應…

如何用Deepseek制作流程圖?

使用Deepseek制作流程圖&#xff0c;本質上是讓AI根據你的需求&#xff0c;生成相關流程圖的代碼&#xff0c;然后在流程圖編輯器中渲染&#xff0c;類似于Python一樣&#xff0c;ChatGPT可以生成代碼&#xff0c;但仍需在IDE中執行。 你知道繪制流程圖最高效的工具是什么嗎&a…

嵌入式硬件工程師從小白到入門-原理圖(三)

原理圖繪制從小白到入門&#xff1a;知識點速通與注意事項 一、原理圖繪制基礎概念 什么是原理圖&#xff1f; 原理圖&#xff08;Schematic&#xff09;是電子電路的圖形化表示&#xff0c;展示元器件之間的電氣連接關系&#xff0c;是硬件設計的藍圖。 核心元素 元器件符號&…

WSL 環境橋接與雷達通信配置筆記

作者: DWDROME 維護時間: 2025-03-22 參考文章:Windows子系統&#xff08;WSL&#xff09;通過橋接網絡實現被外部局域網主機直接訪問 WSL 環境橋接與雷達通信配置筆記 環境說明 Windows 11 專業版&#xff08;啟用 Hyper-V&#xff09;WSL2 Ubuntu 20.04物理網線&#xff08…

ToDesk云電腦各類鼠標有什么區別?虛擬/3D/游戲鼠標等各有利

不知道各位在使用ToDesk云電腦的時候是否是有注意到&#xff0c;這其中的鼠標竟有多種名稱、多種模式可以選&#xff0c;比如鎖定鼠標、3D鼠標、游戲鼠標這幾項。 那么這些不同名稱的鼠標都代表什么意思吶&#xff0c;又應該怎么選擇、怎么用吶&#xff1f;本篇內容小編就為大…

DeepBI:重構流量邏輯,助力亞馬遜廣告實現高效流量增長

在日益激烈的跨境電商競爭環境中&#xff0c;廣告投放早已從“粗放撒網”走向“精細化運營”。尤其是在亞馬遜這樣一個成熟且競爭白熱化的平臺&#xff0c;如何在廣告預算有限的前提下實現高效曝光、精準觸達、穩定轉化&#xff0c;成為眾多賣家和運營團隊面臨的核心挑戰。 De…

java項目之基于ssm的畢業論文管理系統(源碼+文檔)

項目簡介 畢業論文管理系統實現了以下功能&#xff1a; 本畢業論文管理系統主要實現的功能模塊包括學生模塊、導師模塊和管理員模塊三大部分&#xff0c;具體功能分析如下&#xff1a; &#xff08;1&#xff09;導師功能模塊&#xff1a;導師注冊登錄后主要功能模塊包括個人…

【自學筆記】Linux基礎知識點總覽-持續更新

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 Linux 基礎知識點總覽目錄Linux 簡介文件和目錄結構常用命令文件操作目錄操作權限管理文本處理 Shell 腳本基礎進程管理用戶和組管理網絡配置 總結 Linux 基礎知識點…

【PCB工藝】晶體管的發展歷史

晶體管被認為是20世紀最偉大的發明之一&#xff0c;因為沒有晶體管就不會有現代電腦、手機或平板??&#xff0c;你也無法閱讀到這里的內容&#xff0c;因為不存在網絡。 ——本文純粹出于對過往奮斗在這個領域中科學家的緬懷。科學家有太多寶貴的思想和經驗值得我們認真總結和…

第23章:Kubernetes網絡模型深度剖析

第23章:Kubernetes網絡模型深度剖析 作者:DogDog_Shuai 閱讀時間:約25分鐘 難度:高級 目錄 1. 引言2. Kubernetes網絡模型基礎3. 四種網絡通信模式4. CNI架構深度解析5. 網絡實現原理

HTML應用指南:利用GET請求獲取貓眼電影日票房信息——以哪吒2為例

2025年春節檔期&#xff0c;國產動畫電影《哪吒之魔童鬧海》&#xff08;以下簡稱《哪吒2》&#xff09;以顛覆性的敘事風格與工業化制作水準震撼登場&#xff0c;不僅刷新了中國動畫電影的票房紀錄&#xff0c;更成為全球影史現象級作品。影片憑借春節檔期的爆發式開局、持續5…

Model Context Protocol:下一代AI系統集成范式革命

在2023年全球AI工程化報告中,開發者面臨的核心痛點排名前三的分別是:模型與業務系統集成復雜度(58%)、上下文管理碎片化(42%)、工具調用標準化缺失(37%)。傳統API集成模式在對接大語言模型時暴露明顯短板:RESTful接口無法承載動態上下文,GraphQL缺乏工具編排能力,gR…

Java 鎖機制全面解析

在 Java 并發編程中&#xff0c;鎖&#xff08;Lock&#xff09;是保證線程安全的關鍵工具。本文將全面介紹 Java 的鎖機制&#xff0c;包括 synchronized 關鍵字、Lock 接口及其實現、讀寫鎖、樂觀鎖與悲觀鎖等&#xff0c;幫助新手理解 Java 并發控制。 1. Java 中的鎖概述 …

JavaScript 中 “new Map()”的使用

new Map() 是 JavaScript 中用于創建 Map 對象 的構造函數。Map 是一種鍵值對集合&#xff0c;類似于普通對象&#xff08;Object&#xff09;&#xff0c;但有以下區別&#xff1a; 1. Map 的特點 1.1 鍵的類型 Map&#xff1a;鍵可以是任意類型&#xff08;包括對象、函數、…

Rust語言的集成測試

Rust語言的集成測試 引言 隨著軟件開發的不斷發展&#xff0c;測試已成為一個不可或缺的環節。特別是在系統復雜度日益增加的今天&#xff0c;確保代碼質量和穩定性變得尤為重要。Rust作為一門強調安全性和性能的編程語言&#xff0c;其測試框架提供了豐富的工具來幫助開發者…

手寫簡單的Spring基于注解配置的程序

需求說明&#xff1a; 自己寫一個簡單的 Spring 容器, 通過讀取類的注解(Component ControllerService Reponsitory) &#xff0c;將對象注入到 IOC 容器&#xff0c;自己使用 IOAnnotaion反射集合 技術實現 思路分析&#xff1a; 一、新建一個包component并在包下創建bean類 …

WSL 導入完整系統包教程

作者&#xff1a; DWDROME 配置環境&#xff1a; OS: Ubuntu 20.04.6 LTS on Windows 11 x86_64Kernel: 5.15.167.4-microsoft-standard-WSL2ros-noetic &#x1f9ed;WSL 導入完整系統包教程 ? 一、準備導出文件 假設你已有一個 .tar 的完整系統包&#xff08;如從 WSL 或 L…

使用selenium來獲取數據集

使用selenium來獲取數據集 1、下載最新的chrome瀏覽器與chromedriver.exe 查看chrome的版本,打開谷歌瀏覽器,點擊右上角的三個點,然后點擊【幫助】, 點擊【關于Google Chrome】 然后去下載同樣為134版本號的chromedriver.exe, 網址:https://googlechromelabs.github.…

(二)VMware:VMware虛擬機安裝CentOS教程

目錄 1、準備CentOS 7鏡像1.1、官網鏡像下載1.2、清華大學開源鏡像下載?1.3、阿里云開源鏡像下載 2、使用 VMware安裝CentOS 72.1、創建虛擬機2.2、選擇自定義安裝2.3、硬件兼容性&#xff0c;保持默認2.4、選擇下載的ISO鏡像2.5、設置虛擬機名稱以及存放磁盤位置2.6、按照需求…