题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5727

题意:有N个阴珠子和N个阳珠子,特定序号的阴阳珠子放在一起会让阳珠子暗淡。现在问排放成一个环,如何排放能让暗淡的阳珠子尽可能地少。

既要考虑阳珠子的位置也要考虑阴珠子的位置,可以先枚举阴珠子成环的全排列,由于成环所以N个珠子只需要枚举N-1个数的全排列。每一次固定阴珠子的一个排列,这时候阳珠子和阴珠子的位置确定了。下面看看有多少对阴阳珠子的结合会使相邻的阳珠子暗淡,二分图跑出暗淡的阳珠子数,用n减去最大匹配就是不暗淡的。

 #include <bits/stdc++.h>
using namespace std; const int maxn = ;
int nu, nv;
int G[maxn][maxn];
int linker[maxn];
bool vis[maxn]; bool dfs(int u) {
for(int v = ; v <= nv; v++) {
if(G[u][v] && !vis[v]) {
vis[v] = ;
if(linker[v] == - || dfs(linker[v])) {
linker[v] = u;
return ;
}
}
}
return ;
} int hungary() {
int ret = ;
memset(linker, -, sizeof(linker));
for(int u = ; u <= nu; u++) {
memset(vis, , sizeof(vis));
if(dfs(u)) ret++;
}
return ret;
} int n, m;
int a[maxn];
bool sb[maxn][maxn]; int main() {
// freopen("in", "r", stdin);
int x, y;
while(~scanf("%d%d",&n,&m)) {
nu = nv = n;
memset(sb, , sizeof(sb));
for(int i = ; i <= n; i++) a[i] = i;
a[n+] = ;
for(int i = ; i < m; i++) {
scanf("%d %d", &x, &y);
sb[x][y] = ;
}
if(n == ) {
printf("0\n");
continue;
}
int ret = maxn;
do {
memset(G, , sizeof(G));
for(int i = ; i <= n; i++) {
for(int j = ; j <= n; j++) {
if(!sb[i][a[j]] && !sb[i][a[j+]]) {
G[i][j] = ;
}
}
}
ret = min(ret, n-hungary());
}while(next_permutation(a+, a+n+));
printf("%d\n", ret);
}
return ;
}

[HDU5727]Necklace(二分图最大匹配,枚举)的更多相关文章

  1. HDU1281 棋盘游戏 —— 二分图最大匹配 + 枚举

    题目链接:https://vjudge.net/problem/HDU-1281 棋盘游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit ...

  2. POJ3057 Evacuation(二分图最大匹配)

    人作X部:把门按时间拆点,作Y部:如果某人能在某个时间到达某门则连边.就是个二分图最大匹配. 时间可以二分枚举,或者直接从1枚举时间然后加新边在原来的基础上进行增广. 谨记:时间是个不可忽视的维度. ...

  3. HDU:过山车(二分图最大匹配)

    http://acm.hdu.edu.cn/showproblem.php?pid=2063 题意:有m个男,n个女,和 k 条边,求有多少对男女可以搭配. 思路:裸的二分图最大匹配,匈牙利算法. 枚 ...

  4. Luogu 1402 酒店之王(二分图最大匹配)

    Luogu 1402 酒店之王(二分图最大匹配) Description XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化.由于很多来住店的旅客有自己喜好的房间色调.阳光等,也有自 ...

  5. Luogu 2756 飞行员配对方案问题(二分图最大匹配)

    Luogu 2756 飞行员配对方案问题(二分图最大匹配) Description 英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞 ...

  6. Luogu 1894 [USACO4.2]完美的牛栏The Perfect Stall / POJ 1274 The Perfect Stall(二分图最大匹配)

    Luogu 1894 [USACO4.2]完美的牛栏The Perfect Stall / POJ 1274 The Perfect Stall(二分图最大匹配) Description 农夫约翰上个 ...

  7. 二分图最大匹配|UOJ#78|匈牙利算法|边表|Elena

    #78. 二分图最大匹配 从前一个和谐的班级,有 nlnl 个是男生,有 nrnr 个是女生.编号分别为 1,…,nl1,…,nl 和 1,…,nr1,…,nr. 有若干个这样的条件:第 vv 个男生 ...

  8. HDU 1045 - Fire Net - [DFS][二分图最大匹配][匈牙利算法模板][最大流求二分图最大匹配]

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1045 Time Limit: 2000/1000 MS (Java/Others) Mem ...

  9. 【CF387D】George and Interesting Graph(二分图最大匹配)

    题意:给定一张n点m边没有重边的有向图,定义一个有趣图为:存在一个中心点满足以下性质: 1.除了这个中心点之外其他的点都要满足存在两个出度和两个入度. 2.中心 u 需要对任意顶点 v(包括自己)有一 ...

  10. HDU - 1045 Fire Net (二分图最大匹配-匈牙利算法)

    (点击此处查看原题) 匈牙利算法简介 个人认为这个算法是一种贪心+暴力的算法,对于二分图的两部X和Y,记x为X部一点,y为Y部一点,我们枚举X的每个点x,如果Y部存在匹配的点y并且y没有被其他的x匹配 ...

随机推荐

  1. yii2细节设置

    1.设置默认的跳转登陆页面.默认的登陆成功页 在项目的(backend/frontend的config中的main.php中的user组件中),添加loginUrl=>'admin/login' ...

  2. VMWare联网

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).  如果你想利用VMWare在局域网中新建一个独立的虚拟服务器,为局域网用 ...

  3. 161018、springMVC中普通类获取注解service方法

    1.新建一个类SpringBeanFactoryUtils 实现 ApplicationContextAware package com.loiot.baqi.utils; import org.sp ...

  4. vc获取特殊路径(SpecialFolder)

    %SystemDrive% 操作系统所在的分区号.如 C: %SystemRoot% 操作系统根目录.如 C:\WINDOWS %windir% 操作系统根目录.如 C:\WINDOWS %ALLUS ...

  5. Linux Kernel中断子系统来龙去脉浅析【转】

    转自:http://blog.csdn.net/u011461299/article/details/9772215 版权声明:本文为博主原创文章,未经博主允许不得转载. 一般来说,在一个device ...

  6. struts2结果类型

    struts2结果类型: 结果类型 描述 前request域属性是否丢失 1 dispatcher 用于与jsp整合的结果类型.默认结果类型. 2 chain Action链式处理结果类型.前一个Ac ...

  7. 简单选择排序(Java)

    简单选择排序: 每一趟在整个记录中找到最小的那个作为有序序列的第i个记录. class SelectSort{ public void p(int[] a){ for(int i=0;i<a.l ...

  8. 【转】去掉eclipse的validate

    转载地址:http://www.blogjava.net/leisure/archive/2013/01/11/394087.html 困扰了好几天,与大家共享 1,在project名称上右键选择pr ...

  9. hdu4932 Miaomiao's Geometry

    这是一道搜索题,我们很容易得到目标值的上下界,然后就只能枚举了. 就是将x轴上的点排序之后从左到右依次考察每个点,每个点要么在线段的左端点,要么在线段的右端点. 点编号从0到n-1,从编号为1的点开始 ...

  10. hdoj4906 Our happy ending(2014 Multi-University Training Contest 4)

    对于一个定长(size = n)的数列a, 若其存在“位置相关”的子集(含空集)使得该子集所有元素之和为k,那么将数列a计数. 其中数列a中任一元素a[i]在[0, l]内自由取值. 数据条件0≤n, ...