[學習筆記]最小割之最小點權覆蓋&&最大點權獨立集
最小點權覆蓋
給出一個二分圖,每個點有一個非負點權
要求選出一些點構成一個覆蓋,問點權最小是多少
建模:
S到左部點,容量為點權
右部點到T,容量為點權
左部點到右部點的邊,容量inf
求最小割即可。
證明:
每一個割集,對應選擇一些點,對應一個覆蓋。
每個覆蓋有不同的代價,選擇最小的就是最小點覆蓋
每個割集有不同的代價,選擇最小的就是最小割
由於割集和覆蓋一一對應
所以,這個新圖的最小割,就對應原圖的最小點覆蓋。
最大點權獨立集
給出一個二分圖,每個點有一個非負點權
要求選出一些點構成一個獨立集,問點權最大是多少
建模:
等於:總權值-最小點權覆蓋
證明:
扔掉覆蓋的點的剩餘點一定是一個獨立集
而且,根據覆蓋=點數-獨立集
對於一個固定的點覆蓋,獨立集已經不能更大。
所以,一個固定的點覆蓋下,最大獨立集是確定的。兩者呈現一一對應的關係。
而總權值不變,所以選擇扔掉的覆蓋集總權值最小即可。
所以,最大點權獨立集=總權值-最小點權覆蓋
例題:
方格取數問題
在一個有m*n 個方格的棋盤中
每個方格中有一個正整數
現要從方格中取數,使任意2 個數所在方格沒有公共邊
求取出的數的總和最大是多少。
題解:
將棋盤國際象棋黑白染色
然後連邊
然後最大點權獨立集即可。
相關推薦
[學習筆記]最小割之最小點權覆蓋&&最大點權獨立集
最小點權覆蓋 給出一個二分圖,每個點有一個非負點權要求選出一些點構成一個覆蓋,問點權最小是多少 建模: S到左部點,容量為點權 右部點到T,容量為點權 左部點到右部點的邊,容量inf 求最小割即可。 證明: 每一個割集,對應選擇一些點,對應一個覆蓋。 每個覆蓋
【機器學習筆記】線性迴歸之最小二乘法
線性迴歸 線性迴歸(Linear Regreesion)就是對一些點組成的樣本進行線性擬合,得到一個最佳的擬合直線。 最小二乘法 線性迴歸的一種常用方法是最小二乘法,它通過最小化誤差的平方和尋找資料的最佳函式匹配。 代數推導 假設擬合函式為 y
網路流 最大流—最小割 之SAP演算法 詳解
首先引入幾個新名詞: 1、距離標號: 所謂距離標號 ,就是某個點到匯點的最少的弧的數量(即邊權值為1時某個點到匯點的最短路徑長度)。 設點i的標號為level[i],那麼如果將滿足level[i]=level[j]+1的弧(i,j)叫做允許弧 ,且增廣時只走允許弧
二分圖最小點權覆蓋 二分圖最大權獨立集 方格取數 最小割
補集 限制 成了 最小 選擇 沒有 構造 最大點權獨立集 棋盤 二分圖最小點權覆蓋: 每一條邊 (u, v) 都是一個限制條件, 要求 u 和 v 不能同時取得. 我們考慮先取得所有的, 然後減去最小的點權. 建立原點 S , 連向二分圖左邊的所
微信小程式學習筆記(一)之框架及工具
文章目錄 一、app.json的配置 1. 決定頁面檔案路徑 2. 配置視窗表現 3. 配置tab標籤導航 4. 設定網路超時時間 5. 配置debug模式 二、App()函式使用
微信小程序學習筆記三(持續更新)---小程序組件通信
操作 nts bin json view data 組件 學習 所有 參照這裏 這裏將重要的點貼一下: 一、項目目錄結構 在項目同級目錄新建components文件夾,新建component會生成wxml,wxss,js,json文件。將所有的公共組件都寫在此文件夾下。 二
微信小程序學習筆記五(持續更新)---小程序上傳文件
gin false round count splice dex 一個 key 屬性 項目中需要用戶上傳圖片,需要實現,上傳按鈕默認為一個,在上傳一張圖片之後,自動增加一個上傳按鈕,上傳三張圖片後按鈕消失。 實現思路: 1、圖片路徑存儲在一個數組中,增加和刪除圖片是對數組進
C++|STL學習筆記-map的基本操作(插入,刪除,遍歷,大到小輸出)【仿大佬寫法】
首先的程式碼是插入,刪除,遍歷 執行截圖如下: 原始碼如下: #include <map> #include <iostream> #include <algorithm> using namespace std; typedef pair
MVC學習筆記(六)---遇到的小問題匯總
== rtti data- 成功 進行 都是 count htm family 一、MVC中Controller中返回兩個對象的寫法如下: return Json(new { code = 1, msg = "成功", user = user, userInfo = pe
微信小程式學習筆記二(持續更新)---小程式網路請求封裝
寫小程式的你是否已經厭倦了傳送網路請求的wx.request?接著看吧。。。 一、目錄結構 在專案同級目錄下utils資料夾裡新建一個fetch.js檔案,(名字看自己喜好) 二、直接上程式碼 // 定義網路請求API地址 const baseURL = 'h
微信小程式學習筆記(一)----微信小程式入門簡介,開發者工具基礎使用
到現在學習小程式已經不早了,但是無論什麼時候開始都不晚,只要學就OK。 看到所有小程式開發的教程全部都是以註冊賬號開始的,但是註冊賬號的過程無論是官方文件還是其他的經驗帖子都已經有一堆了,而且本身這個過程也並不具有什麼技術性,實在是很多收費的教程視訊用來前期拖時間的一種方式
微信小程式學習筆記三(持續更新)---小程式元件通訊
參照這裡 這裡將重要的點貼一下: 一、專案目錄結構 在專案同級目錄新建components資料夾,新建component會生成wxml,wxss,js,json檔案。將所有的公共元件都寫在此資料夾下。 二、元件引入和使用 我們的所有頁面一般寫在pages目錄下,每個頁面有wx
【jquery學習筆記】美元背後的一點小技巧
寫在前面:本文比較基礎,僅是一枚菜鳥接觸jquery過程中的一點思考和總結,內容較基礎,希望能對剛接觸jQuery的童鞋有一點幫助 :) 按照國際慣例(其實就是俺寫作的習慣),首先丟擲待問題的場景。至於問題的答案,文章並不會急著揭曉,而是通過逐層遞進的方式,展現思考、解決一個問題的過程 1、如何給一個id
(補充)趕鴨子上架學D3.jsdataenter的(二)---data,datum,update,enter,exit基礎概念(b站從零開始畫圖表學習筆記,感謝up主睿小狼)
繫結資料D3.js常用的繫結資料的方法有兩種 data和datum從英文單詞角度來說是data的附屬和date的區別與共同點:都是繫結資料集,但是data是將陣列中的每一個元素繫結到svg元素上面,而datum的作用是把陣列本身繫結到每個svg元素上面,簡而言之,data
Java學習筆記——排序算法之O(n²)排序
blog sel != 而是 while bsp 優化 ++ logs 男兒何不帶吳鉤,收取關山五十州。請君暫上淩煙閣,若個書生萬戶侯? ——南園十三首 三種排序法: 1、冒泡法 2、簡單選擇法 3、直接插入法
Java學習筆記——排序算法之進階排序(堆排序與分治並歸排序)
進行 技術分享 ring http 沒有 oid 有序 重復 調整 春蠶到死絲方盡,蠟炬成灰淚始幹 ——無題 這裏介紹兩個比較難的算法: 1、堆排序 2、分治並歸排序 先說堆。 這裏請大家先自行了解完全二叉樹的數據結構。 堆是完全二叉樹。
RabbitMQ學習筆記五:RabbitMQ之優先級消息隊列
-c virtual 調用 itl 3.5 rri color images 執行順序 RabbitMQ優先級隊列註意點: 1、只有當消費者不足,不能及時進行消費的情況下,優先級隊列才會生效 2、RabbitMQ3.5以後才支持優先級隊列 代碼在博客:RabbitMQ學習筆
Python學習筆記-數據報表之Excel操作模塊
工作表 excel 字符串 python 利用Python操作Excel的模塊XlsxWriter,可以操作多個工作表的文字、數字、公式、圖表等。XlsxWriter模塊具有以下功能:100%兼容的Excel XLSX文件,支持Excel 2003、Excel 2007等版本;支持所有Ex
Nginx學習筆記06負載均衡之(一)負載均衡介紹
最終 反向 結果 html proxy mime cnblogs 負載 cal 1.1.1. 負載均衡的介紹 Nginx中使用upstream配置塊,可以方便的配置出一個基於反向代理的負載均衡解決方案。 在upstream中可以包含多個server配置項,每個server配
[javase學習筆記]-8.1 statickeyword之特點
之前 隨著 小強 pop dsm name 變量 popu tracking 這一節我們來學習java語言中一個新的keyword就是statickeyword。 當然對於每個keyword,我們都要明白的是它有什麽作用,怎麽用。我們先來看一個樣例: