题目大意

一个a * b * c(a * b * c <= 5000)大小的长方体中有一些点需要被覆盖,每次可以选择任意大小的长方体,覆盖其中的点,产生的代价为这个长方体长宽高中最小的那个的长度,求最小代价。

二维情形

对二维的情形这就是经典的最小割问题了,可以建立二分图用二分图最大匹配算法解决。具体建图方法是将行和列分为两个集合,如果一个点需要被覆盖,就将它所在的行和列连接起来。这种解法的正确性是显然的:由最大流-最小割定理,最大流就等于最小割,而将行和列连起来后,为保证源与汇分开必须将源到行的边或者列到汇的边割掉。

错误解法

这题我一开始其实就想偏了,我认为可以像二维情形那样直接建立最小割模型求解。我想的是:每个点都有三种选择,故仅需将对应几个分量的点连起来跑最小割就行了。但实际上这是错的。原因是这种建模方式会使得它表示的限制比实际要求的更紧(每个限制就是某些边里至少要割掉一条边,这样建模会使这种限制增多),从而使答案偏大。

正解

因为a * b * c <= 5000,所以min{a, b, c} <= 17,我们可以对其中一维直接暴力搜索枚举所有情形,剩下的问题便是二维的了,直接用刚才的建模方式就行了。

[HNOI 2013] 消毒 (搜索,二分图匹配)的更多相关文章

  1. 【BZOJ3140】消毒(二分图匹配)

    [BZOJ3140]消毒(二分图匹配) 题面 Description 最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为abc,a.b.c 均为正 ...

  2. 【NOI2003——搜索+二分图匹配优化】

    A 文本编辑器 无旋treap真好看 B 木棒游戏 暴力神仙题 C 数据生成器 树的直径两端点为Y, Z D 智破连环阵 搜索+二分图匹配优化 第一次写欸 列一下 void dfs (int y,in ...

  3. bzoj 1191 [ HNOI 2006 ] 超级英雄Hero —— 二分图匹配

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1191 就是二分图匹配的裸题: 注意题目要求是第一次匹配失败就退出!没仔细看题差点丢失1A. ...

  4. [BZOJ3140][HNOI2013]消毒:二分图匹配

    分析 假如实验皿是二维的,那么这道题便是一个二分图最小点覆盖问题,可以转化为二分图最大匹配问题,使用匈牙利算法解决. 考虑如何扩展到三维,首先我们发现一次操作的代价为\(min(x,y,z)\).不难 ...

  5. [HEOI 2013 day2] 钙铁锌硒维生素 (线性代数,二分图匹配)

    题目大意 给定两个n阶方阵,方阵B的行i能匹配方阵A的行j当且仅当在第一个方阵中用行向量i替换行向量j后,第一个方阵满秩,显然这是个二分图匹配问题,问是否存在完美匹配,如果存在,还要输出字典序最小的方 ...

  6. BZOJ.3140.[HNOI2013]消毒(二分图匹配 匈牙利)

    题目链接 不难想到每次一定是切一片. 如果是平面,很容易想到直接做二分图匹配.对于3维的? 可以发现min(a,b,c)的最大值只有\(\sqrt[3]{n}≈17\),我们暴力枚举这一最小值代表的是 ...

  7. [HNOI2013] 消毒 - 二分图匹配

    容易发现 \(a,b,c\) 中至少有一个 \(\leq 17\) 不妨将其调剂为 \(a\),那么我们可以暴力枚举哪些 \(x\) 片片要被直接削掉,剩下的拍扁成二维情况 二维时,如果有一个格子是 ...

  8. UVA 12549 - 二分图匹配

    题意:给定一个Y行X列的网格,网格种有重要位置和障碍物.要求用最少的机器人看守所有重要的位置,每个机器人放在一个格子里,面朝上下左右四个方向之一发出激光直到射到障碍物为止,沿途都是看守范围.机器人不会 ...

  9. POJ 1274 裸二分图匹配

    题意:每头奶牛都只愿意在她们喜欢的那些牛栏中产奶,告诉每头奶牛愿意产奶的牛棚编号,求出最多能分配到的牛栏的数量. 分析:直接二分图匹配: #include<stdio.h> #includ ...

随机推荐

  1. 通过源码安装最新版Git

    下载源码 到Git的Github主页上下载最新的源码到本地,解压并进入目录. 编译安装 cd 你的git源码目录 autoconf ./configure make 第一个报错 报错内容: usr/b ...

  2. 95秀-异步http请求完整过程

    最终调用时的代码     private void ansyClearApplyInfor() {         RequestParams params = new RequestParams() ...

  3. .net 中序列化和反序列化的使用

    序列化的目的:将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数据. 序列化 序列化分为JSON 序列化,XML序列化,二 ...

  4. 匹配不含有某个信息的sql语句写法

    SELECT id,order_id,flight_info FROM order_flights WHERE mark=0 AND flight_info REGEXP '[^() DAY)]' O ...

  5. form表单提交

    1.form表单提交.html页面失败 <%--客户端form--%> <form id="form2" action="LoginOne.html&q ...

  6. 马士兵SVN.

    下载 服务端:VisualSVN Server 和客户端:TortoiseSVN cmd,并cd 到 VisualSVN Server安装目录下的bin目录. 新建库: svnadmin create ...

  7. Oracle数据库名、实例名、数据库域名、全局数据库名、服务名之间的区别

    数据库名.实例名.数据库域名.全局数据库名.服务名 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数据库 ...

  8. CentOS+nginx+uwsgi+Python 多站点环境搭建

    转载:http://www.cnblogs.com/xiongpq/p/3381069.html 环境: CentOS X64 6.5 nginx 1.5.6 Python 2.7.5 正文: 一:安 ...

  9. Oracle数据库之PL/SQL程序设计简介

    PL/SQL程序设计简介 一.什么是PL/SQL? PL/SQL是 Procedure Language & Structured Query Language 的缩写. ORACLE的SQL ...

  10. VS2010 IE10 调试时报“未能将脚本调试器附加到计算机”,已经附加了一个进程

    解决办法:以管理员身份打开CMD,运行:regsvr32.exe "%ProgramFiles(x86)%\Common Files\Microsoft Shared\VS7Debug\ms ...