HDU 3289 Cat VS Dog (二分匹配 求 最大独立集)
题意:每个人有喜欢的猫和不喜欢的狗。留下他喜欢的猫他就高心,否则不高心。问最后最多有几个人高心。
思路:二分图求最大匹配
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<iostream>
- #include<cstdlib>
- #include<string>
- #include<cmath>
- #include<vector>
- #define clc(a,b) memset(a,b,sizeof(a))
- using namespace std;
- const double eps=1e-;
- const double pi=acos(-);
- const int maxn=;
- int linker[maxn];
- bool used[maxn];
- int n,m,p;
- char cat[maxn][];
- char dog[maxn][];
- vector<int>vec[maxn];
- int uN;
- bool dfs(int u)
- {
- for(int i=;i<vec[u].size();i++)
- {
- if(!used[vec[u][i]])
- {
- used[vec[u][i]]=true;
- if(linker[vec[u][i]]==-||dfs(linker[vec[u][i]]))
- {
- linker[vec[u][i]]=u;
- return true;
- }
- }
- }
- return false;
- }
- int hungary(int n)
- {
- //int u;
- int res=;
- clc(linker,-);
- for(int u=;u<n;u++)
- {
- clc(used,);
- if(dfs(u))
- res++;
- }
- return res;
- }
- int main()
- {
- while(~scanf("%d%d%d",&n,&m,&p))
- {
- clc(vec,);
- for(int i=;i<p;i++)
- {
- scanf("%s%s",cat[i],dog[i]);
- }
- for(int i=;i<p;i++)
- {
- for(int j=i+;j<p;j++)
- {
- if(!strcmp(cat[i],dog[j])||!strcmp(dog[i],cat[j]))
- {
- vec[i].push_back(j);
- vec[j].push_back(i);
- }
- }
- }
- uN=hungary(p)/;
- //cout<<uN<<endl;
- printf("%d\n",p-uN);
- }
- return ;
- }
HDU 3289 Cat VS Dog (二分匹配 求 最大独立集)的更多相关文章
- hdu 2768 Cat vs. Dog (二分匹配)
Cat vs. Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 3829 Cat VS Dog 二分匹配 最大独立点集
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3829 题目大意: 给定N个猫,M个狗,P个小朋友,每个小朋友都有喜欢或者不喜欢的某猫或者某狗 管理员从 ...
- hdu 3829 Cat VS Dog 二分图匹配 最大点独立集
Cat VS Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Prob ...
- HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配)
HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配) Description The zoo have N cats and M dogs, toda ...
- HDU——2768 Cat vs. Dog
Cat vs. Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- HDU 2063 过山车(二分匹配入门)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 二分匹配最大匹配数简单题,匈牙利算法.学习二分匹配传送门:http://blog.csdn.ne ...
- HDU - 1045 Fire Net(二分匹配)
Description Suppose that we have a square city with straight streets. A map of a city is a square bo ...
- hdu 1528 Card Game Cheater (二分匹配)
Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- HDU 3829——Cat VS Dog——————【最大独立集】
Cat VS Dog Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit S ...
随机推荐
- c++ 私有函数 头文件设计
clock.h #ifndef CLOCK_H_INCLUDED #define CLOCK_H_INCLUDED class Clock {public: static void HandleExd ...
- 初试docker以及搭建mysql on docker
前一阵阅读了google的borg论文,在最后的related works和总结中发现了kubernetes.从论文中了解的kubernetes这个东西很有意思,按照论文所说,它的实现有希望解决an ...
- 线程以及数据对象的wait()和notifyAll()方法
正在运行的程序称作一个进程,一个进程可以包含多个线程,这些线程可以共享进程的资源,它们共用一块存储空间.那么,各个线程在访问同一个数据对象的同时,可能引起冲突,以生产者.消费者为例,就会出现队列中没有 ...
- tomcat配置301重定向(urlRewrite URL重写)
tomcat默认情况下不带www的域名是不会跳转到带www的域名的,而且也无法像apache那样通过配置.htaccess来实现.如果想要把不带“www'的域名重定向到带”www"域名下,又 ...
- hdu 1760 A New Tetris Game 博弈论
找sg值,可以选择暴力,也可以利用sg值的特点简化. 暴力就跟取石子一样,没什么差别,DFS搞定.把矩阵看成一个字符串,字符串就是一个状态. 其实我们也可以不暴力求sg值,因为只要当前状态能到达一个s ...
- hibernate 字段名最好不要使用数据库的保留字
请看如下红色部分,show为mysql的保留字,所以我在hibernate修改show字段值的时候出现错误,原来是show跟mysql的保留字相同了 CREATE TABLE `t_letter` ( ...
- 多线程(一)NSThread
iOS中多线程的实现方案: 技术 语言 线程生命周期 使用频率 pthread C 程序员自行管理 几乎不用 NSthread OC 程序员自行管理 偶尔使用 GCD C 自动管理 经常使用 NSOp ...
- photoshop:把路径存储为形状
这个其实跟定义画笔步骤是一样的 路径存储为自定义形状 1.用路径选择工具(快捷键A),选中路径 2.菜单:编辑->定义自定形状 3.选择自定义形状工具(快捷键U),可以看到刚定义的形状 把当前形 ...
- svn的merge使用例子
先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰t ...
- 通过dbms_xplan.display_cursor识别低效的执行计划
dbms_xplan.display_cursor定义: function display_cursor(sql_id varchar2 default null, ...