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

思路:匈牙利算法应用,900ms+险过。(好像直接n/2就行)

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<vector>
 6 using namespace std;
 7 #define MAXN 5555
 8 vector<int>map[MAXN];
 9 int n,m,ans;
10 bool mark[MAXN];
11 int lx[MAXN],ly[MAXN];
12
13 int dfs(int u){
14    for(int i=0;i<map[u].size();i++){
15       int v=map[u][i];
16       if(!mark[v]){
17          mark[v]=true;
18          if(ly[v]==-1||dfs(ly[v])){
19             ly[v]=u;
20             lx[u]=v;
21             return 1;
22          }
23       }
24    }
25    return 0;
26 }
27
28
29 int main(){
30  //  freopen("1.txt","r",stdin);
31    int _case,u,v;
32    scanf("%d",&_case);
33    while(_case--){
34       scanf("%d",&n);m=n*3/2;ans=0;
35       for(int i=1;i<=n;i++)map[i].clear();
36       for(int i=1;i<=m;i++){
37          scanf("%d%d",&u,&v);
38          map[u].push_back(v);
39          map[v].push_back(u);
40       }
41       memset(lx,-1,(n+2)*sizeof(lx[0]));
42       memset(ly,-1,(n+2)*sizeof(ly[0]));
43       for(int i=1;i<=n;i++){
44          if(lx[i]==-1){
45             memset(mark,false,(n+2)*sizeof(mark[0]));
46             ans+=dfs(i);
47          }
48       }
49       printf("%d\n",ans/2);
50    }
51    return 0;
52 }

View Code

hdu 1845(最大匹配)相关推荐

  1. hdu 2063+hdu 1083(最大匹配数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 二分匹配水题,求最大匹配数(即求边数最多的匹配),匈牙利算法实现.. View Code 1 # ...

  2. hdu 1507(最大匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1507 思路:这题关键是建图,我们可以把坐标映射建双向图,最后求得的最大匹配数/2就ok了. 1 #in ...

  3. ACM 图论入门题(附代码解释)

    目录 HDU 1869 六度分离 HDU 1874 畅通工程续 (最短路) HDU 3339 In Action (最短路+01背包) HDU 1162 Eddy's picture(prime算法) ...

  4. [kuangbin]各种各样的题单

    [kuangbin]各种各样的题单 专题1 简单搜索 POJ 1321 POJ 2251 POJ 3278 POJ 3279 POJ 1426 POJ 3126 POJ 3087 POJ 3414 F ...

  5. 杭电OJ分类题目(4)-Graph

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...

  6. hdu 3729(二分图最大匹配+最大字典序)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3729 解题思路:节点i对Xi~Yi之间的每一个点都连一条边,这样问题就转化成二分图的最大匹配了.字典序 ...

  7. hdu 2444(二分图的判断以及求最大匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2444思路:首先要判断能否构成二分图,用bfs对当前点u染色,对u的邻接点v的颜色进行判断,如果为染色, ...

  8. HDU 1281 棋盘游戏 【二分图最大匹配】

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1281 题意概括: 有N*M大的棋盘,要在里面放尽量多的"车",求最多能放的车的个数, ...

  9. HDU 1068 Girls and Boys(最大独立集合 = 顶点数 - 最大匹配数)

    HDU 1068 :题目链接 题意:一些男孩和女孩,给出一些人物关系,然后问能找到最多有多少个人都互不认识. 转换一下:就是大家都不认识的人,即最大独立集合 #include <iostream ...

最新文章

  1. 分式的二阶导数怎么求_高考数学导数大题如何抢分? 名师手把手教你! 高一高二也要看...
  2. 12c expdp ORA-31623 -又遇到BUG
  3. Amazon DynamoDB 入门2:工作原理、API和数据类型介绍
  4. DIV + CSS 神话
  5. 自己的php工具,用PHP自己编写的站长工具箱
  6. Java 程序执行过程的内存流程图(结合类加载器 ClassLoader 讲解)
  7. 易盛极星期货量化教学
  8. 关于Mysql模糊查询下划线的问题
  9. CentOS7 扩容时发现 /dev/mapper/centos-home 不存在,创建后登录终端显示 -bash-4.2
  10. 作业帮冯雪胡不归问题_作业帮学习平台微信服务号关注
  11. 2022年度GitHub中文Java项目排行榜Top 10
  12. 自然语言处理之分词、命名主体识别、词性、语法分析-stanfordcorenlp-NER(二)
  13. 数据库中的SCHEMA到底是什么?MySQL
  14. NFS 服务端配置流程
  15. c语言 中的求和函数,0基础理解C语言调用汇编实现求和函数
  16. chromecast 协议_Chromecast和Android TV有什么区别?
  17. 互联网起源之工人阶级
  18. UDP网络基础知识简介
  19. 记一次阿里云木马排查过程
  20. 和异性合租是什么样的体验?

热门文章

  1. export命令在Mac Pycharm上如何设置环境变量!_ CodingPark编程公园
  2. 海致大数据京信_God-Of-BigData
  3. 美企暂停俄罗斯业务,凸显国内企业阿里等自研操作系统前瞻性
  4. 小师妹问 easyUI mergeCells 行合并后表头和内容对不齐
  5. 《数据库原理及应用教程》考试系统
  6. WRF——intle编译器编译fire_emis出错
  7. Android 文件夹介绍
  8. 做亚马逊应该怎么去选品?怎么找货源?
  9. layui下拉选择框开启搜索功能后,文本框会将Nbsp显示出来的解决办法
  10. Flume拦截器实战案例