当前位置: 首页 > 编程日记 > 正文

hdu3829(最大独立集)

传送门:Cat VS Dog

题意:动物园有N只猫,M只狗,P个小孩。每个小孩都有自己喜欢的动物和讨厌的动物,如果他喜欢狗,那么就讨厌猫, 如果他讨厌狗,那么他就喜欢猫。某个小孩能开心,当且仅当他喜欢的动物留在动物园和讨厌的动物不在动物园里面。 现让管理员通过带走某些动物,问最多能使多少个孩子开心。 

分析:为了让尽量多的孩子开心,那么要选出一个最大的集合里面的点没有矛盾,因此根据孩子之间有矛盾建边,然后选出最大独立集即可。

最大独立集=总结点-最大匹配数。因为拿整个二分图来求最大匹配,而不是具体分出X,Y二部分来求,因此最后的匹配数要除以2.

#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cstdlib>
#include <stack>
#include <vector>
#include <set>
#include <map>
#define LL long long
#define mod 100000000
#define inf 0x3f3f3f3f
#define eps 1e-6
#define N 1000
#define FILL(a,b) (memset(a,b,sizeof(a)))
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define PII pair<int,int>
using namespace std;
int match[N],vis[N],n,m,k;
vector<int>g[N];
int dfs(int u)
{for(int i=0,sz=g[u].size(); i<sz; i++){int v=g[u][i];if(!vis[v]){vis[v]=1;if(match[v]==-1||dfs(match[v])){match[v]=u;return 1;}}}return 0;
}
int hungary()
{FILL(match,-1);int ans=0;for(int i=1; i<=k; i++){FILL(vis,0);if(dfs(i))ans++;}return ans;
}
char like[N][5],dislike[N][5];
int main()
{while(scanf("%d%d%d",&n,&m,&k)>0){for(int i=1; i<=k; i++)g[i].clear();for(int i=1; i<=k; i++){scanf("%s%s",like[i],dislike[i]);}for(int i=1; i<=k; i++)for(int j=i+1; j<=k; j++)if(strcmp(like[i],dislike[j])==0||strcmp(like[j],dislike[i])==0){g[i].push_back(j);g[j].push_back(i);}int res=hungary();printf("%d\n",k-res/2);}
}
View Code

转载于:https://www.cnblogs.com/lienus/p/4287049.html

相关文章:

数据科学家:那些年,我都学过哪些编程语言…

前言 我们对事物的看法各不相同&#xff0c;有时他人特别喜欢的语言可能会成为另一个人的的噩梦。而我个人的噩梦是用C语言进行日常的编程工作。 本文就介绍了作为一名数据科学家&#xff0c;我在职业生涯中所学过的语言&#xff0c;其中包括MATLAB、Weka、R、C 以及Python。 数…

short_open_tag 必须打开

在使用phpcms本地安装的过程中&#xff0c;到运行环境检测这一步&#xff0c;发现&#xff1a;short_open_tag 必须打开。 从网上搜索相关资料时&#xff0c;发现&#xff0c;将php.ini文件中的short_open_tag off 项&#xff0c;设置成on&#xff0c;重启服务器即可。 shor…

10.15 iptables filter表案例

2019独角兽企业重金招聘Python工程师标准>>> iptables常用知识回顾点 iptables -I/-A/-D 后紧跟 链 &#xff0c;可以是INPUT&#xff0c;OUTPUT&#xff0c;FORWARDiptables -P 用来指定 链的默认策略 ——>最好不要直接操作&#xff0c;否则会造成远程的终端断…

高并发大型网站架构设计

一个大型的网站网站应该由如下6个子系统组成 负载均衡系统 反向代理系统 Web服务器系统 分布式存储系统 底层服务系统 数据库集群系统 为什么要做高并发系统设计&#xff1f; 事实上&#xff0c;针对于任何单一的网络服务器程序&#xff0c;其可承受的同时连接数目是有理…

Tidio AI 趋势报告:约42%受访者能够接受机器人伴侣

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 文章内图源&#xff1a;Tidio 近日&#xff0c;波士顿动力发布了一段机器人跳舞的视频&#xff0c;有些人不敢相信他们所看到的&#xff0c;它看起来更像是皮克斯动画而不是真实的镜头。 有人说&#x…

微信公众平台对所有公众号开放自定义菜单

据统计&#xff0c;微信公众号已达1000多万了&#xff0c;但大多数没有微信认证&#xff0c;且没有开发能力&#xff0c;为此微信公众平台开放了自定义菜单功能给所有公众号&#xff0c;这是微信团队年前给广大自媒体送的大礼&#xff0c;期待微信越来越开放 公众帐号运营者点击…

SignalR网页实时推送

1.新建项目&#xff0c;选择mvc4 Wed应用程序&#xff0c;选择Internet&#xff0c;视图引擎&#xff1a;Razor 2.在控制器中添加 并添加上视图 3.引用&#xff08;install-package Microsoft.AspNet.SignalR&#xff09; 4.添加Startup 项目名 5.新建Hubs文件夹&#xff0c;添…

Hyper-V虚拟化测试05防火墙及证书配置

3.防火墙和证书3.1、防火墙配置打开Windows防火墙&#xff0c;并进入到高级配置入站规则&#xff0c;启用“Hyper-V副本HTTP侦听器&#xff08;TCP入站&#xff09;”和“Hyper-V副本HTTPS侦听器&#xff08;TCP入站&#xff09;”可以看到已经启用了如上两条规则允许入站流量3…

httpwatch的timechart 解析

从timeChart&#xff0c;我们可以一目了然的看到那些请求花费的时间较长&#xff0c;一般柱状的长短表示从请求到接受共花费的时间&#xff0c;我们重点需要优化那些柱状较长的部分&#xff0c;当然我们也可以点击time列&#xff0c;按请求时间排到序&#xff0c;直接找出请求时…

英特尔北京2022年冬奥会体验中心落成

2020年东京奥运会已圆满落幕&#xff0c;全社会进入到为北京2022年冬奥会紧锣密鼓筹备的倒计时模式。近日&#xff0c;“英特尔北京2022年冬奥会体验中心”在北京石景山区首钢园落成&#xff0c;并举办了媒体开放日活动。以体验中心为窗口&#xff0c;英特尔在近千平米的展厅中…

机器学习 LR getA()

机器学习 LR getA() 前面的几位回答都没有解决getA()是什么的问题&#xff0c;碰到同样的问题&#xff0c;解释如下&#xff1a;matrix.getA()Return self as an ndarray object.Equivalent to np.asarray(self).Parameters: None Returns: ret : ndarrayself as an ndarray 也…

memcache安装

转载自 http://zhaochen.blog.51cto.com/2029597/390037 一&#xff0c;memcache简单介绍&#xff1a; memcached是高性能的分布式内存缓存服务器&#xff0c;为了提高性能&#xff0c;memcached中的数据都保存在内存中&#xff0c;重启memcached及重启操作系统都会导致缓存中的…

算法小论——第三章 又把新桃换旧符

2019独角兽企业重金招聘Python工程师标准>>> 笔记 这一章主要是渐进记号和高中数学的回忆。 几个标记&#xff1a; Θ -- 上界和下界&#xff0c;绑定值&#xff0c;相当于f(n) ∈ [c1 * g(n), c2 * g(n)]Ω -- 闭区间下界&#xff0c;最好运行时间&#xff0c;相当…

来体验一把职场人的真实训练,检验你的工程化交付能力!

长沙软件人才实训基地是由政府引导&#xff0c;长沙软件园&#xff08;大型国企&#xff09;、万兴科技&#xff08;A股上市公司&#xff09;和CSDN&#xff08;中国开发者社区&#xff09;三方参与&#xff0c;强强联手&#xff0c;倾力打造的人才培育平台&#xff0c;旨在通过…

从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作

本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程&#xff0c;本系列文章是在起步阶段逐步积累的&#xff0c;希望带给大家更好&#xff0c;更真实的转换历程体验。本篇主要开始介绍基于XCode进行IOS程序的开发&#xff0c;介绍使用FMDB…

nginx做方向代理不显示图片的问题

在nginx的配置文件中加上 location ~ \.(jpg|png|jpeg|bmp|gif|swf|css)$ { access_log off; expires 30d; root /www/htdocs/market; break; }

Linux系统挂载ntfs分区

Linux系统挂载ntfs分区 http://www.2cto.com/os/201404/297079.htmlposted on 2015-02-21 22:20 雪山看雪 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/zker/p/4297223.html

谷歌新深度学习系统可以促进放射科医生的发展

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 谷歌人工智能研究人员团队在《自然》上发表了一篇新论文&#xff0c;深度学习可以检测出异常胸部 X 光片&#xff0c;其准确度可与专业放射科医生相媲美。 深度学习系统可以帮助放射科医师优先考虑胸部…

【AngularJS】—— 12 独立作用域

独立作用域的作用 为了便于理解&#xff0c;先看一下下面这个例子&#xff1a; <!doctype html> <html ng-app"myApp"><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><script src"…

nginx虚拟目录设置 alias 和 root

nginx貌似没有虚拟目录的说法&#xff0c;因为它本来就是完完全全根据目录来设计并工作的。 如果非要给nginx安上一个虚拟目录的说法&#xff0c;那就只有alias标签比较“像”&#xff0c;干脆来说说alias标签和root标签的区别吧。 最基本的区别&#xff1a;alias指定的目录是…

避免死锁的一些注意事项

1. 避免嵌套锁&#xff0c; 如果每个线程都只占有一个锁&#xff0c; 则可以很大程度上避免死锁。其死锁的情况是&#xff0c; 线程 1 依次获得 A 对象和 B 对象的锁&#xff0c; 然后决定等另一个线程的信号再继续&#xff0c; 从而先释放了 B 对象的的锁。可是线程 2 需要同时…

这是一个好问题:既然机器可以学习,它们能忘掉吗?

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 很多公司都使用机器学习来分析人们的欲望、厌恶或面孔。研究人员提出了一个不同的问题&#xff1a;我们如何让机器忘记学习&#xff1f; 机器学习正在寻找如何在人工智能软件中诱发选择性失忆的方法。目…

python tar.gz格式压缩、解压

压缩 代码 import tarfile import os def tar(fname):t tarfile.open(fname ".tar.gz", "w:gz")for root, dir, files in os.walk(fname):print root, dir, filesfor file in files:fullpath os.path.join(root, file)t.add(fullpath)t.close()if __nam…

bzoj1251: 序列终结者 (splay)

splay可以用于维护序列&#xff0c;比如noi的维修序列&#xff0c;比如这道 发现当时splay没写总结&#xff0c;也没题解 然后重新写splay竟然耗了一个晚上 结果是因为max【0】没有附最小值&#xff01;&#xff01;血一样的教训 最后祭出inline大法才过&#xff0c;我的splay真…

模型神器组合,yyds!

作者 | 东哥起飞来源 | Python数据科学最近在kaggle上有一个调参神器非常热门&#xff0c;在top方案中频频出现&#xff0c;它就是OPTUNA。知道很多小伙伴苦恼于漫长的调参时间里&#xff0c;这次结合一些自己的经验&#xff0c;给大家带来一个LGBM模型OPTUNA调参的使用教程&am…

理解http响应头中的Date和Age

Date&#xff1a;Date头域表示消息发送的时间&#xff0c;时间的描述格式由rfc822定义。例如&#xff0c;Date: Mon, 04 Jul 2011 05:53:36 GMT。 Age&#xff1a;当代理服务器用自己缓存的实体去响应请求时&#xff0c;用该头部表明该实体从产生到现在经过多长时间了。 比如访…

linux 保留内核中sas驱动的加载导致crash问题

[rootlocalhost ~]# uname -a Linux localhost.localdomain 3.10.0-693.5.2.el7.x86_64 问题描述&#xff0c;在crash的时候&#xff0c;小内核因为分配中断号失败而触发panic&#xff0c;打印如下&#xff1a;&#xff08;备注&#xff1a;本文大内核就是指正常运行的内核&am…

四层和七层负载均衡的区别

负载均衡设备也常被称为"四到七层交换机"&#xff0c;那补充&#xff1a;所谓四层就是基于IP端口的负载均衡&#xff1b;七层就是基于URL等应用层信息的负载均衡&#xff1b;同理&#xff0c;还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。换句换说&…

关于数据库,你可能最想知道的几件事

【CSDN 编者按】随着技术不断更新&#xff0c;数据库的发展可谓全面开花&#xff0c;也吸引了越来越多人的关注&#xff0c;但大家真的都足够了解数据库吗&#xff1f;作者 | 易璜珵 责编 | 侯淼淼出品 | 《新程序员》互联网飞速发展的时代里&#xff0c;数据库、中间件和…

Visual C++ 2012/2013的内存溢出检測工具

在过去&#xff0c;每次编写C/C程序的时候&#xff0c;VLD差点儿是我的标配。有了它&#xff0c;就能够放心地敲代码&#xff0c;随时发现内存溢出。 VLD最高可支持到Visual Studio 2012。不知道以后会不会支持Visual Studio 2013&#xff0c;但反正眼下是不支持的。 相关的讨论…