#include<bits/stdc++.h>
using namespace std; bool noway[][], Gra[][];
int arr[]; int linker[];
bool used[];
bool dfs(int u, int vN) {
for(int v = ; v <= vN; v++)
if(Gra[u][v] && !used[v]) {
used[v] = true;
if(linker[v] == - || dfs(linker[v], vN)) {
linker[v] = u;
return true;
}
}
return false;
}
int hungary(int vN) {
int res = ;
memset(linker,-,sizeof(linker));
for(int u = ; u <= vN; u++) {
memset(used,false,sizeof(used));
if(dfs(u, vN))
res++;
}
return vN - res;
} int solve(int n) {
memset(Gra, true, sizeof(Gra));
for(int i = ; i <= n; i ++)
for(int j = ; j <= n; j ++)
if(noway[arr[i - ]][j] || noway[arr[i]][j])
Gra[i][j] = false;
for(int i = ; i <= n; i ++)
if(noway[arr[]][i] || noway[arr[n]][i])
Gra[][i] = false;
return hungary(n);
} int main() {
int n,m,a,b;
while(~scanf("%d%d",&n,&m)) {
if(n == ){
printf("0\n");
continue;
}
memset(noway, false, sizeof(noway));
for(int i = ; i < m; i ++) {
scanf("%d%d",&a,&b);
noway[b][a] = true;
}
int ans = ;
for(int i = ; i <= n; i ++) arr[i] = i;
do {
ans = min(solve(n), ans);
} while(next_permutation(arr + , arr + n + ));
printf("%d\n",ans);
}
return ;
}

Necklace (全排列 + 匈牙利)的更多相关文章

  1. HDU 5727 - Necklace - [全排列+二分图匹配][Hopcroft-Karp算法模板]

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5727 Problem DescriptionSJX has 2*N magic gems. ...

  2. TTTTTTTTTTTTTTTT hdu 5727 Necklace 阴阳珠 二分图匹配+暴力全排列

    Necklace Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  3. HDU 5727 Necklace(全排列+二分图匹配)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=5727 题意:现在有n个阳珠子和n个阴珠子,现在要把它们串成项链,要求是阴阳珠子间隔串,但是有些阴阳珠 ...

  4. HDU5727 Necklace(二分图匹配)

    Problem Description SJX has 2*N magic gems. N of them have Yin energy inside while others have Yang ...

  5. HDU 5727 - Necklace

    题意:( 0 <= n <= 9 )    现在有n颗阴珠子和n颗阳珠子,将它们阴阳相间圆排列构成一个环,    已知有些阴珠子和阳珠子不能放在相邻的位置,否则这颗阳珠子就会失去功效,   ...

  6. hdu 5727 Necklace 二分图匹配

    题目链接 给2*n个珠子, n<=9, n个阴n个阳. 然后将它们弄成一个环, 阴阳交替.现在给你m个关系, 每个关系给出a, b. 如果阳a和阴b挨着, 那么a就会变暗. 问你最小变暗几个阳. ...

  7. HDU 5727.Necklace-二分图匹配匈牙利

    好久没写过博客了,把以前的博客补一下. Necklace Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

  8. PHP实现全排列(递归算法)

    算法描述:如果用P表示n个元素的全排列,而Pi表示n个元素中不包含元素i的全排列,(i)Pi表示在排列Pi前面加上前缀i的排列,那么n个元素的全排列可递归定义为:    ① 如果n=1,则排列P只有一 ...

  9. hdu5651 xiaoxin juju needs help (多重集的全排列+逆元)

    xiaoxin juju needs help 题意:给你一个字符串,求打乱字符后,有多少种回文串.                      (题于文末) 知识点: n个元素,其中a1,a2,··· ...

随机推荐

  1. LeetCode 292 Nim Game 解题报告

    题目要求 You are playing the following Nim Game with your friend: There is a heap of stones on the table ...

  2. 基于Gogs+Drone搭建的私有CI/CD平台

    请移步 基于Gogs+Drone搭建的私有CI/CD平台

  3. java 选择排序、冒泡排序、折半查找

    public class SortAndSelectDemo{ public static void main(String[] args){ int[] arr = {3, 5, 17, 2, 11 ...

  4. 分布式任务队列Celery入门与进阶

    一.简介 Celery是由Python开发.简单.灵活.可靠的分布式任务队列,其本质是生产者消费者模型,生产者发送任务到消息队列,消费者负责处理任务.Celery侧重于实时操作,但对调度支持也很好,其 ...

  5. zabbix宏(macro)使用:自定义监控阈值

    一.简单应用场景 zabbix在监控cpu load时并没有考虑客户端cpu的个数和核心数量,当平均5分钟的负载达到5时zabbix执行报警动作,这样是非常不合理的,笔者的被监控机器有四核和单核,现在 ...

  6. magento 2.3安装测试数据

    前面我们一步步composer安装Magento2.3,但是没有数据的话各项设置不是很熟悉,所以最好还是安装一下测试数据.下面我们就跟ytkah一起填充数据.假设magento 2.3安装目录是/ww ...

  7. CGPoint,CGSize,CGRect转NSString以及CGRect的一些便捷实用方法

    打印代码小技巧 UIKIT_EXTERN NSString *NSStringFromCGPoint(CGPoint point); UIKIT_EXTERN NSString *NSStringFr ...

  8. python安装talib库

    简便安装方法 最简单的安装方式: $ pip install TA-Lib 用setup.py的方式自己安装一个源文件 $ python setup.py install 有可能遇到的问题 func. ...

  9. caffe SSD目标检测lmdb数据格式制作

    一.任务 现在用caffe做目标检测一般需要lmdb格式的数据,而目标检测的数据和目标分类的lmdb格式的制作难度不同.就目标检测来说,例如准备SSD需要的数据,一般需要以下几步: 1.准备图片并标注 ...

  10. Html-根据不同的分辨率设置不同的背景图片

    @media only screen and (min-width: 1024px)     //当分辨率width >= 1024px 时使用1.jpg作为背景图片 {             ...