UVA 11383 - Golden Tiger Claw(二分圖完美匹配擴展)

UVA 11383 - Golden Tiger Claw

題目鏈接

題意:給定每列和每行的和,給定一個矩陣,要求每一個格子(x, y)的值小于row(i) + col(j),求一種方案,而且全部行列之和的和最小

思路:A二分圖完美匹配的擴展,行列建二分圖,權值為矩陣對應位置的值,做一次KM算法后。全部頂標之和就是最小的

代碼:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;const int MAXNODE = 505;typedef int Type;
const Type INF = 0x3f3f3f3f;struct KM {int n;Type g[MAXNODE][MAXNODE];Type Lx[MAXNODE], Ly[MAXNODE], slack[MAXNODE];int left[MAXNODE];bool S[MAXNODE], T[MAXNODE];void init(int n) {this->n = n;}void add_Edge(int u, int v, Type val) {g[u][v] = val;}bool dfs(int i) {S[i] = true;for (int j = 0; j < n; j++) {if (T[j]) continue;Type tmp = Lx[i] + Ly[j] - g[i][j];if (!tmp) {T[j] = true;if (left[j] == -1 || dfs(left[j])) {left[j] = i;return true;}} else slack[j] = min(slack[j], tmp);}return false;}void update() {Type a = INF;for (int i = 0; i < n; i++)if (!T[i]) a = min(a, slack[i]);for (int i = 0; i < n; i++) {if (S[i]) Lx[i] -= a;if (T[i]) Ly[i] += a;}}void km() {for (int i = 0; i < n; i++) {left[i] = -1;Lx[i] = -INF; Ly[i] = 0;for (int j = 0; j < n; j++)Lx[i] = max(Lx[i], g[i][j]);}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) slack[j] = INF;while (1) {for (int j = 0; j < n; j++) S[j] = T[j] = false;if (dfs(i)) break;else update();}}}
} gao;int n;int main() {while (~scanf("%d", &n)) {gao.init(n);for (int i = 0; i < n; i++)for (int j = 0; j < n; j++) {scanf("%d", &gao.g[i][j]);}gao.km();int ans = 0;for (int i = 0; i < n; i++) {printf("%d%c", gao.Lx[i], i == n - 1 ?

'\n' : ' '); ans += gao.Lx[i]; } for (int i = 0; i < n; i++) { printf("%d%c", gao.Ly[i], i == n - 1 ? '\n' : ' '); ans += gao.Ly[i]; } printf("%d\n", ans); } return 0; }



轉載于:https://www.cnblogs.com/gccbuaa/p/6896235.html

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

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

相關文章

淺談web開發以及django的安裝和入門

淺談web開發 1.B/S和C/S結構 B/S:瀏覽器與服務器進行的交互模式&#xff08;不需要官方下載的&#xff0c;一夫多妻制&#xff09; C/S:客戶機與服務器進項的交互模式&#xff08;必須官方下載的&#xff0c;一夫一妻制2.MVC和MVT MVC: M:模型層&#xff08;Model&#xff0…

大數據可視化html模板開源_大數據時代-可視化數據分析平臺必不可少

公眾號&#xff1a;不安分的猿人一、項目簡介DataGear是一款數據管理與可視化分析平臺&#xff0c;使用Java語言開發&#xff0c;采用瀏覽器/服務器架構&#xff0c;支持多種數據庫&#xff0c; 主要功能包括數據管理、SQL工作臺、數據導入/導出、數據集管理、圖表管理、看板管…

java輸出一些內容到日志文件

在eclipse中新建一個項目&#xff0c;在src下新建一個log4j.properties文件&#xff0c;文件內容為下&#xff1a;log4j.rootLogger debug,stdout,D,Elog4j.appender.E org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File E://logs/error.log log4j.appender.E…

PMT_Header-節目映射表的數據結構2

1 標志位 table_id8固定為0x02 &#xff0c;標志是該表是PAT2段語法標志位section_syntax_indicator 1段語法標志位&#xff0c;固定為13 zero104保留字reserved_12保留字5有用的字節數section_length 12表示這個字節后面有用的字節數&#x…

Django中的Model模型

Model模型 模型是你的數據的唯一的、權威的信息源。它包含你所儲存數據的必要字段和行為。 通常&#xff0c;每個模型對應數據庫中唯一的一張表。 每個模型都是django.db.models.Model的一個Python 子類。模型的每個屬性都表示為數據庫中的一個字段。Django 提供一套自動生成的…

python有多少種模塊_python如何查看有哪些模塊

Question: 如何查看正則表達式模塊re及其相關函數的意義 1、終端命令行下 python >> import sys >> sys.modules ################################### 一長串信息中字段modules對應的模塊即為包含的模塊。 ################################### >> import r…

淺談面向對象的javascript幾個特性

javascript中的this和new javascript是一門很靈活的語言&#xff0c;尤其是function。他即可以以面向過程的方式來用&#xff0c;比如&#xff1a; function getName() {return 張三 } getName() 也可以以面向對象的方式來用&#xff0c;比如&#xff1a; function User() {th…

【Netty】ChannelHandler和ChannelPipeline

一、前言 前面學習了Netty的ByteBuf&#xff0c;接著學習ChannelHandler和ChannelPipeline。 二、ChannelHandler和ChannelPipeline 2.1 ChannelHandler 在ChannelPipeline中&#xff0c;ChannelHandler可以被鏈在一起處理用戶邏輯。 1. Channel生命周期 Channel接口定義了一個…

TS流頭部的調整字段

見 http://hi.baidu.com/xumingxsh/blog/item/7b178903f1fa98014afb512f.html http://hi.baidu.com/xumingxsh/blog/item/ba50dba320a10da3caefd02f.html

electron 入坑記

最近有個想法,想寫個簡單的應用程序.平時在 Mac上開發,最終有可能運行在 Windows 上.看了一下,Electron 比較簡單,應該可以一試. 關于安裝 我機器上是有 Node 環境的,按著官方教程 直接 npm install electron 結果運行到 npm install.js就不到了..下午上班有事,也沒管他,結果一…

自動駕駛安全駕駛規則_自動駕駛知識科普 自動駕駛汽車的七大核心技術

自動駕駛技術的本質是用機器視角去模擬人類駕駛員的行為&#xff0c;其技術框架可以分為三個環節&#xff1a;感知層、決策層 和執行層&#xff0c;具體涉及傳感器、計算平臺、算法、高精度地圖、OS、HMI等 多個技術模塊。目前自動駕駛L3商業化技術已經成熟&#xff0c;L4級/L5…

orcal數據操作

1.將數據庫ZHSY完全導出,用戶名baseusernj密碼baseusernj導出到D:\daochu.dmp中 exp baseusernj/baseusernjZHSY filed:\daochu.dmp fully exp baseuserhf/baseuserhfZJCPDB fileC:\105hf.dmp ownerbaseuserhf 2.導入那個數據庫的用戶就寫那個&#xff0c;第一個是用戶名&#…

H264實時編碼及NALU,RTP傳輸(ZZ)

rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. 按照RFC3984協議實現H264視頻流媒體nalu單元 包起始 0x 00 00 00 01H&#xff0e;264 NAL格式及分析器http://hi.baidu.com/zsw%5Fdavy/b ... c409cc7cd92ace.htmlhttp://hi.b…

學習具體計劃書

計劃書10大行動&#xff1a;1. 學習的時候不玩手機學習的時候把手機放在抽屜里&#xff0c;靜音2. 及時復習學完一個章節的知識及時復習覺得有做分享的價值就做分享錄視頻3. 不學習的時間要好好利用花時間做好吃的&#xff0c;把身體弄好多看看心理學的書&#xff0c;<接觸青…

初識python

課程介紹: python語言:python語言是一種計算機程序設計語言,實現人機交互的語言 python的課程設計python基礎 (python開發工程師)數據庫和SQL開發 (數據分析工程師)網絡爬蟲 (網絡爬蟲工程師)高數和數據分析 (數據分析工程師)人工智能和機器學習 …

photoshop最全快捷鍵列表

一、工具箱(多種工具共用一個快捷鍵的可同時按【Shift】加此快捷鍵選取) 矩形、橢圓選框工具 【M】 移動工具 【V】 套索、多邊形套索、磁性套索 【L】 魔棒工具 【W】 裁剪工具 【C】 切片工具、切片選擇工具 【K】 噴槍工具 【J】 畫筆工具、鉛筆工具 【B】 像皮圖章、圖案圖…

python實例化對象做實參_如何在Python中記住類實例化?

好的&#xff0c;這是真實的場景&#xff1a;我正在編寫一個應用程序&#xff0c;我有一個類&#xff0c;它表示某種類型的文件&#xff08;在我的例子中&#xff0c;這是照片&#xff0c;但細節與問題無關&#xff09;。照片類的每個實例對于照片的文件名都應該是唯一的。 問題…

bupt summer training for 16 #3 ——構造

https://vjudge.net/contest/172464 后來補題發現這場做的可真他媽傻逼 A.簽到傻逼題&#xff0c;自己分情況 1 #include <cstdio>2 #include <vector>3 #include <algorithm>4 5 using std::vector;6 using std::sort;7 8 typedef long long ll;9 10 int n…

Python02期(北京)課程筆記索引

day01 初始python關于使用notepad運行python程序注釋和語句分類 day02 命名方式和關鍵字數據類型數據類型轉換 day03 變量與數據類型運算和運算符進制轉換 day04 循環結構 day05 函數概述 day06 nonlocal和global 關鍵字詳解 day07 python核心,內建函數高階函數字…