今日總結2024/5/13

今日學習了01背包求具體方案的方法

Acwing.12 背包問題求具體方案

由于背包是從小到大枚舉物品,只能從后往前判斷是從哪個狀態遞推過來的,而該題要求按字典序順序輸出字典序最小的最優方案

因此要將物品從大到小枚舉,判斷時從小到大判斷是從哪個狀態遞推過來的即可

#include <iostream>
#include <algorithm>
using namespace std;
const int N=1e3+5;
int v[N],w[N];
int f[N][N];int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n,m;cin>>n>>m;for(int i=1;i<=n;i++) cin>>v[i]>>w[i];for(int i=n;i;i--)//倒著求才能根據字典序倒推for(int j=1;j<=m;j++){f[i][j]=f[i+1][j];if(j>=v[i]) f[i][j]=max(f[i][j],f[i+1][j-v[i]]+w[i]);}int tag=m;for(int i=1;i<=n;i++)if(f[i][tag]==f[i+1][tag-v[i]]+w[i]){//選他的方案if(tag<v[i]) continue;//體積比v[i]小的不能選cout<<i<<' ';tag-=v[i];}return 0;
}
P2066 機器分配

總公司擁有高效設備 M?臺,準備分給下屬的N?個分公司。各分公司若獲得這些設備,可以為國家提供一定的盈利。問:如何分配這M?臺設備才能使國家得到的盈利最大?求出最大盈利值。其中 M≤15,N≤10。分配原則:每個公司有權獲得任意數目的設備,但總臺數不超過設備數 M。

輸入格式

第一行有兩個數,第一個數是分公司數?N,第二個數是設備臺數?M。

接下來是一個?N×M?的矩陣,表明了第?i?個公司分配?j?臺機器的盈利。

輸出格式

第一行為最大盈利值。

接下來?N?行為第?𝑖?分公司分?x?臺。

P.S. 要求答案的字典序最小。

思路

把公司看成分組背包里的每一組,每組選的個數看成體積,存的是最大價值

因此可以把該題看成是分組背包問題

最后更據結果倒退得到路徑輸出即可

90PTS,應該是哪個字典序出現問題了

#include <iostream>
#include <algorithm>
using namespace std;
const int N=16;
int a[N][N],f[N][N];//f[i,j]表示選到第i個公司,設備總數不超過j的盈利最大值
int way[N];int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n,m;cin>>n>>m;//公司數,設備臺數for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>a[i][j];for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)for(int k=0;k<=j;k++)//選幾臺f[i][j]=max(f[i][j],f[i-1][j-k]+a[i][k]);int k=m;for(int i=n;i;i--)for(int j=0;j<=k;j++)//枚舉上一層是選幾個推過來的if(f[i][k]==f[i-1][k-j]+a[i][j]){way[i]=j;k-=j;break;}cout<<f[n][m]<<'\n';for(int i=1;i<=n;i++)cout<<i<<' '<<way[i]<<'\n';return 0;
}

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

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

相關文章

在Windows上有哪些好用的網絡抓包工具?

2024年5月12日&#xff0c;周日上午 在Windows上&#xff0c;有多種好用的網絡抓包工具&#xff0c;以下是一些常見的選項&#xff1a; Wireshark&#xff1a; Wireshark 是一款功能強大的網絡協議分析工具&#xff0c;它可以捕獲并分析計算機網絡上的數據包。它支持廣泛的協議…

ssm+vue的公務用車管理智慧云服務監管平臺查詢統計(有報告)。Javaee項目,ssm vue前后端分離項目

演示視頻&#xff1a; ssmvue的公務用車管理智慧云服務監管平臺查詢統計&#xff08;有報告&#xff09;。Javaee項目&#xff0c;ssm vue前后端分離項目 項目介紹&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&…

求階乘n!末尾0的個數溢出了怎么辦

小林最近遇到一個問題&#xff1a;“對于任意給定的一個正整數n&#xff0c;統計其階乘n&#xff01;的末尾中0的個數”&#xff0c;這個問題究竟該如何解決&#xff1f; 先用n5來解決這個問題。n的階乘即n!5!5*4*3*2*1120&#xff0c;顯然應該為2個數相乘等于10才能得到一個結…

軟件測試自動化:加速測試,提升效率

目錄 測試自動化的內涵 測試自動化的原理 測試工具的分類和選擇 自動化測試的引入 在當今的軟件開發中&#xff0c;測試自動化已經成為提升效率和確保軟件質量的關鍵環節。測試自動化是指使用軟件工具和腳本來執行重復的測試任務&#xff0c;從而減輕人工測試的負擔&#x…

量化交易包含些什么?

我們講過許多關于量化交易的內容&#xff0c;但是量化交易具體可以做些什么&#xff1f;很多朋友都還不清楚&#xff0c;我們詳細來探討下&#xff01; 第一&#xff1a;什么是量化交易&#xff1f; 量化交易是一種利用先進的數學模型和計算機技術&#xff0c;從大量的歷史數…

制造業精益生產KPI和智慧供應鏈管理方案和實踐案例分享

隨著工業4.0的推進和國家對制造業高質量發展的重視&#xff0c;工業數據已躍升為生產經營活動中不可或缺的核心要素&#xff0c;同時&#xff0c;工業數據也是形成新質生產力的優質生產要素&#xff0c;助力企業實現高效精益生產。 工業數據在制造業中的作用不可忽視&#xff…

常見地圖坐標系間的轉換算法JavaScript實現

文章目錄 ?? 不同的地圖廠商使用不同的坐標系來表示地理位置。以下簡述:?? 前置常量和方法:?? BD-09轉GCJ-02(百度轉谷歌、高德)?? GCJ-02轉BD-09(谷歌、高德轉百度)?? WGS84轉GCJ-02(WGS84轉谷歌、高德)?? GCJ-02轉WGS84(谷歌、高德轉WGS84)?? BD-09轉wgs84坐…

Linux: 默認進程介紹

進程名稱介紹systemdSystemd 可以管理所有系統資源。不同的資源統稱為 Unit&#xff08;單位&#xff09;。 Unit 一共分成12種。 systemctl list-units命令可以查看當前系統的所有 Unitkthreaddkthreadd進程由idle通過kernel_thread創建&#xff0c;并始終運行在內核空間, 負責…

H5利用微信開放標簽喚起用戶手機APP

APP殼子分享網頁到微信&#xff0c;被分享人在微信打開網頁后&#xff0c;利用公眾號配置微信開放標簽[wx-open-launch-app]&#xff0c;實現喚起APP 一、Vue2.x&#xff08;2.6.11&#xff09; 1. main.js // main.jsimport Vue from vue;Vue.config.ignoredElements [wx-o…

Hbase基礎操作Demo(Java版)

一、前置條件 HBase服務&#xff1a;【快捷部署】023_HBase&#xff08;2.3.6&#xff09;開發環境&#xff1a;Java&#xff08;1.8&#xff09;、Maven&#xff08;3&#xff09;、IDE&#xff08;Idea 或 Eclipse&#xff09; 二、相關代碼 代碼結構如上圖中①和② pom.x…

IO—消息隊列+管道

使用消息隊列實現的2個終端之間的互相聊天 并使用信號控制消息隊列的讀取方式: 當鍵盤按ctrlc的時候&#xff0c;切換消息讀取方式&#xff0c;一般情況為讀取指定編號的消息&#xff0c;按ctr1c之后&#xff0c;指定的編號不讀取&#xff0c;讀取其他所有編號的消息 wftok.c …

vue項目中使用websocke即時通訊實現系統公告實時獲取并提醒

一、使用場景 發布者設置需要發布的公告內容、公告接收用戶和發布時間&#xff0c;到達發布時間時及時通知提醒已登錄系統用戶&#xff0c;使用websocke來實現前端與服務器保持長連接&#xff0c;以便實時過去公告信息。 WebSocket是一種在單個TCP連接上進行全雙工通信的協議…

調用Mertc的接口

概述 metaRTC5.0版本 API進行了重構&#xff0c;本篇文章將介紹webrtc傳輸調用流程和例子。 metaRTC5.0版本提供了C和純C兩種接口。 ICE設置 iceCandidateType參數可以在配置文件yang_config.ini中配置&#xff0c;也可以在程序中賦值。 iceCandidateType0 //0:host 1:stun 2…

2024最新大廠C++面試真題合集,大廠面試百日沖刺 bay9

騰訊實習 指針常量和常量指針 常量指針&#xff08;const Type* ptr&#xff09;&#xff1a;指針指向的內容不能被改變&#xff0c;但指針本身可以改變指向。 指針常量&#xff08;Type* const ptr&#xff09;&#xff1a;指針自身的值即內存地址不能改變&#xff0c;但指向…

draw.io 網頁版二次開發(1):源碼下載和環境搭建

目錄 一 說明 二 源碼地址以及下載 三 開發環境搭建 1. 前端工程地址 2. 配置開發環境 &#xff08;1&#xff09;安裝 node.js &#xff08;2&#xff09;安裝 serve 服務器 3. 運行 四 最后 一 說明 應公司項目要求&#xff0c;需要對draw.io進行二次開發&…

電商后臺的秘密:通過API接口提取商品信息

在電子商務的運營中&#xff0c;后臺管理是核心環節&#xff0c;而API接口則是高效管理商品信息的關鍵。API允許商家直接與電商平臺的數據庫進行交互&#xff0c;實現數據的自動化提取和更新。 一、電商后臺管理的核心作用 電商后臺管理系統是商家進行商品展示、訂單處理、庫…

存儲過程、觸發器和函數

存儲過程、觸發器和函數在數據庫中具有重要的作用&#xff0c;它們可以帶來以下幾個方面的重要性&#xff1a; 數據一致性和完整性&#xff1a; 觸發器和存儲過程可以用于實現數據一致性和完整性約束。通過在數據庫操作&#xff08;如插入、更新、刪除&#xff09;發生時自動執…

盛最多水的容器(雙指針)

解題思路&#xff1a; 1&#xff0c;暴力解法&#xff08;超時&#xff09; 我們可以使用兩層for循環進行遍歷。找到那個最大的面積即可&#xff0c;這里我就不寫代碼了&#xff0c;因為寫了也是超時。 2&#xff0c;雙指針法 先定義兩個指針一個在最左端&#xff0c;一個在…

C++ 派生類的引入與特性

一 繼承與派生 從上面的例子可以看出&#xff1a; 繼承&#xff1a;一旦指定了某種事物父代的本質特征&#xff0c;那么它的子代將會自動具有哪些性質。這就是一種樸素的可重用的概念。 派生&#xff1a;而且子代可以擁有父代沒有的特性&#xff0c;這是可擴充的概念。 1 C 的…

Today At Apple 2024.04.15 Phone15 入門

官網&#xff1a; https://www.apple.com/today/Apple 亞洲第一大商店&#xff1a;Apple 靜安零售店現已在上海開幕如下預約課程&#xff1a;下載 Apple Store&#xff08;不是app store&#xff09;&#xff0c;點擊課程預約筆記&#xff1a;Today At Apple Notes果粉加群 &am…