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.mzph.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核心,内建函数高阶函数字…