题意:

有若干个观看者,要对节目进行投票,每张票一定让一直猫留下,一只狗下场,或者一只狗留下,一只猫下场。

如果某个观看者希望留下的动物下场了,或者希望下场的动物留下了,那么他就会离开。

给出若干个投票信息,求出能够留下的人的最大值。

思路:

假设此时有两个人有矛盾,那么一定是其中一个人希望留下的,另一个人希望下场(反之也成立)。

那么我们就在这两个人之间连一条边,此时就形成了一个二分图。

求留下的人最多,那么就是求离开的人最少,也就是说要用最少的人去覆盖所有的矛盾,那么就转化成了一个求二分图最小点覆盖的问题,二分图的最小点覆盖 = 二分图的最大匹配。

匈牙利算法,复杂度O(n^3)。

代码:

 #include <stdio.h>
#include <string.h>
#include <vector>
using namespace std; const int N = ; int link[N];
bool vis[N];
vector<int> g[N]; struct node
{
char a,b;
int x,y; node(char aa,char bb,int xx,int yy)
{
a = aa;
b = bb;
x = xx;
y = yy;
}
}; vector<node> vn; bool dfs(int u)
{
vis[u] = ; for (int i = ;i < g[u].size();i++)
{
int to = g[u][i]; if (!vis[to])
{
vis[to] = ; if (link[to] == - || dfs(link[to]))
{
link[to] = u;
link[u] = to;
return true;
}
}
} return false;
} int solve(int n)
{
int ans = ; for (int i = ;i < n;i++)
{
if (link[i] == -)
{
memset(vis,,sizeof(vis));
if (dfs(i)) ans++;
}
} return ans;
} int main()
{
int t; scanf("%d",&t); while (t--)
{
int c,d,v; memset(link,-,sizeof(link)); scanf("%d%d",&c,&d);
scanf("%d",&v); for (int i = ;i < v;i++) g[i].clear();
vn.clear(); for (int i = ;i < v;i++)
{
char a,b;
int x,y; scanf(" %c%d",&a,&x);
scanf(" %c%d",&b,&y); vn.push_back(node(a,b,x,y));
} for (int i = ;i < v;i++)
{
for (int j = i + ;j < v;j++)
{
if (vn[i].a == vn[j].b && vn[i].x == vn[j].y)
{
g[i].push_back(j);
g[j].push_back(i);
}
else if (vn[j].a == vn[i].b && vn[j].x == vn[i].y)
{
g[i].push_back(j);
g[j].push_back(i);
}
}
} int res = solve(v); printf("%d\n",v - res);
} return ;
}

uvalive 4288 Cat Vs. Dog的更多相关文章

  1. Cat VS Dog

    Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total ...

  2. HDU 3289 Cat VS Dog (二分匹配 求 最大独立集)

    题意:每个人有喜欢的猫和不喜欢的狗.留下他喜欢的猫他就高心,否则不高心.问最后最多有几个人高心. 思路:二分图求最大匹配 #include<cstdio> #include<cstr ...

  3. (hdu step 6.3.7)Cat vs. Dog(当施工方规则:建边当观众和其他观众最喜爱的东西冲突,求最大独立集)

    称号: Cat vs. Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

  4. 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 ...

  5. hdu 3829 Cat VS Dog 二分图匹配 最大点独立集

    Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others) Prob ...

  6. Hdu3829 Cat VS Dog(最大独立点集)

    Cat VS Dog Problem Description The zoo have N cats and M dogs, today there are P children visiting t ...

  7. Cat VS Dog HDU - 3829 (最大独立集 )

    Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total ...

  8. hdu 2768 Cat vs. Dog (二分匹配)

    Cat vs. Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  9. HDU3829:Cat VS Dog(最大独立集)

    Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total ...

随机推荐

  1. 洛谷P3246 序列 [HNOI2016] 莫队/线段树+扫描线

    正解:莫队/线段树+扫描线 解题报告: 传送门! 似乎是有两种方法的,,,所以分别港下好了QAQ 第一种,莫队 看到这种询问很多区间之类的就会自然而然地想到莫队趴?然后仔细思考一下,发现复杂度似乎是欧 ...

  2. 洛谷P3242 接水果 [HNOI2015] 整体二分

    正解:整体二分+树状数组 解题报告: 传送门! 题目还是大概解释下?虽然其实是看得懂的来着,,, 大概就是说给一棵树.给定一些询问,每个询问都是说在两个点之间的路径上的子路径的第k大是什么 然后看到这 ...

  3. JavaScript学习(一)

    变量本身是没有类型的,类型在于它的值(注意开头都是小写).

  4. sql server系统存储过程大全

    关键词:sql server系统存储过程,mssql系统存储过程 xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 x ...

  5. mysql数据库数据(字段数过大)太多导入不了的解决方法

    mysql数据库数据(字段数过大)太多导入不了的决方法: 1.打开navicat 工具 2.在数据库上右键,执行右键菜单命令“命令列界面” 3.在打开的窗口中,运行set global max_all ...

  6. 前端开发---HTML---标签

    HTML的标签内容 1.index <!--声明文档的类型 标记该文档为HTML5的文件--> <!DOCTYPE html> <!-- 页面的根节点 --> &l ...

  7. .NET Core 指南 官方

    https://docs.microsoft.com/zh-cn/dotnet/core/index

  8. HP1020打印机“传递给系统调用的数据区域太小” 如何处理?

    如果电脑上曾经安装过 HP LaserJet 激光打印机的驱动程序,重新安装驱动程序之前,需要完全卸载以前安装的驱动程序,否则可能会出现无法找到设备或者安装不上驱动程序的现象. 安装网站下载的即插即用 ...

  9. Java Script的用途(简介)

    1.可以用来写入HTML输出 <script> document.write("<h1>This is a heading</h1>");//标 ...

  10. iot平台在k8s搭建过程

    统一在   cd /opt/iot nohup /opt/iopservices.sh >/var/log/helmapi.log & 直接查看pod日志? kubectl logs i ...