题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3140


猜一发(显然)有结论:每次一定选择一个平面,即每次操作对答案的贡献都为$1$

首先可以考虑二维的情况。

二维不就是一个经典的最小点覆盖模型么,如果${(x,y)=1}$就把横纵轴上的点分别看为二分图的两边的点,最小点覆盖模型=最大匹配数。

三维?

${a*b*c<=5000}$显然${Max\left \{ a,b,c \right \}<=17}$
考虑枚举(搜索)最小的那一维,剩下的直接看(拍)成一个平面当成二维的做即可。


 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<cstdlib>
#include<cmath>
#include<cstring>
using namespace std;
#define maxn 1000100
#define llg long long
#define yyj(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
llg n,G,C,K,T,cnt,N,belong[maxn],bj[maxn]; vector<llg>a[maxn]; struct node
{
llg x,y,z;
}point[maxn]; void init()
{
llg x;
cnt=;
scanf("%lld%lld%lld",&C,&K,&G);
for (llg i=;i<=C;i++)
for (llg j=;j<=K;j++)
for (llg k=;k<=G;k++)
{
scanf("%lld",&x);
if (x) point[++cnt]=(node){i,j,k};
}
} bool find(llg x)
{
llg w=a[x].size(),v;
for (llg i=;i<w;i++)
{
v=a[x][i];
if (bj[v]) continue;
bj[v]=;
if (!belong[v] || find(belong[v]))
{
belong[v]=x; belong[x]=v;
return ;
}
}
return ;
} llg work(llg zt)
{
llg sum=; N=C+K;
for (llg i=;i<=N;i++) a[i].clear(),belong[i]=;
for (llg i=;i<G;i++) if ((zt&(<<i))==) sum++;
for (llg i=;i<=cnt;i++)
if (zt&(<<(point[i].z-)))
{
llg x=point[i].x,y=C+point[i].y;
a[x].push_back(y),a[y].push_back(x);
}
for (llg i=;i<=N;i++)
if (!belong[i])
{
for (llg j=;j<=N;j++) bj[j]=;
if (find(i)) sum++;
}
return sum;
} int main()
{
yyj("clear");
cin>>T;
while (T--)
{
init();
if (C<G) {swap(G,C); for (llg i=;i<=cnt;i++) swap(point[i].x,point[i].z); }
if (K<G) {swap(G,K); for (llg i=;i<=cnt;i++) swap(point[i].y,point[i].z); }
llg ans=(llg)1e16;
for (llg i=;i<(<<G);i++)
ans=min(work(i),ans);
printf("%lld\n",ans);
}
return ;
}

【BZOJ】3140: [Hnoi2013]消毒的更多相关文章

  1. bzoj 3140: [Hnoi2013]消毒

    3140: [Hnoi2013]消毒 Description 最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为a*b*c,a.b.c 均为正整数 ...

  2. 【刷题】BZOJ 3140 [Hnoi2013]消毒

    Description 最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为abc,a.b.c 均为正整数.为了实验的方便,它被划分为abc个单位立 ...

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

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

  4. 3140:[HNOI2013]消毒 - BZOJ

    题目描述 Description 最近在生物实验室工作的小 T 遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为 a*b*c,a.b.c均为正整数.为了实验的方便,它被划 ...

  5. [BZOJ3140][HNOI2013]消毒(二分图最小点覆盖)

    3140: [Hnoi2013]消毒 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1621  Solved: 676[Submit][Status] ...

  6. [BZOJ 3140] 消毒

    Link: BZOJ 3140 传送门 Solution: 挺好的一道暴力题 首先发现可以每次贪心选择宽度为1的一面,即$1*x*y,1*x*z,1*y*z$ 那么对于与该面垂直的面,相当于解决了一行 ...

  7. P3231 [HNOI2013]消毒

    P3231 [HNOI2013]消毒 二维覆盖我们已经很熟悉了 扩展到三维,枚举其中较小的一维,这里定义为$a$ 以$a$为关键字状压,$1$表示该面全选 剩下的面和二维覆盖一样二分图匹配 如果还没接 ...

  8. BZOJ 3140 消毒(最小顶点覆盖)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3140 题意:最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格 ...

  9. bzoj千题计划295:bzoj3140: [Hnoi2013]消毒

    http://www.lydsy.com/JudgeOnline/problem.php?id=3140 如果只有两维,那就是二分图最小点覆盖 现在是三维,但是a*b*c<=5000,说明最小的 ...

随机推荐

  1. router.go,router.push,router.replace的区别

    除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现.当你点击 <router-link> 时,这个 ...

  2. ubuntu16.04 无法连接wifi和校园宽带问题的解决办法

    我遇到的问题是在ubuntu16.04系统下无法进行上海大学校园宽带连接或者校园wifi连接,我一个一个来解决这两个问题. 1.无法连接校园宽带的问题:输入校园账号和密码后,宽带始终连接不上.(上海大 ...

  3. 基于spring框架的jt项目分页查询知识点(二)

    知识点汇总 1. 日志记录方法 private Logger log= Logger.getLogger(SysLogServiceImpl.class.getName()); 记录SysLogSer ...

  4. Eclipse Luna在线安装Maven时报错:Java heap space

    问题描述: 在线安装Maven插件时发生了:Java heap space 问题截图:

  5. 关于__declspec(dllexport)

    windows下dll动态库函数的导入与导出. __declspec Microsoft Specific __declspec ( extended-attribute ) declarator l ...

  6. 11.2.0.4 sql*loader/oci direct load导致kpodplck wait before retrying ORA-54

    昨天晚上9点多,有个环境开发说特别慢,早上上去看下了,如下: 导致性能的是一个统计的sql执行计划走错了,主要不是因为kpodplck wait before retrying ORA-54,不过这个 ...

  7. MySql数据库表操作(二)

    一.增加表记录: insert [into] tab_name (field1,field2....) values (values1,values2....) , (values1,values2. ...

  8. 03: pip使用

    1.1 pip常用方法 1.自我升级(升级pip到最新版本) pip install --upgrade pip 2. 安装库 pip install XXX 3. 查看当前环境所有已安装的库 pip ...

  9. 05: 使用axios/vue-resource发送HTTP请求

    1.1 axios 简介与安装 1.axios简介 1. vue本身不支持发送AJAX请求,需要使用vue-resource.axios等插件实现 2. axios是一个基于Promise的HTTP请 ...

  10. Kali linux 2018安装后全屏乱码解决

    安装的时候选择了中文, 后来安装成功后成了全部乱码的. 原因是,系统没有中文字体显示安装包, 下载一个 sudo apt-get install ttf-wqy-zenhei 重启解决!