hdu2768Cat VS Dog(最大独立集)
来源:互联网 发布:淘宝windows10激活码 编辑:程序博客网 时间:2024/04/28 09:49
这个题目就是把喜欢猫的和喜欢狗的分开,然后用结构体表示一下喜欢和讨厌,这个地方用的string,方便以后判断相等的地方,把喜欢猫里面不喜欢狗和喜欢狗的相比找一样的,或者喜欢猫里和讨厌猫相比找一样的,然后建边,求最大独立集就是总的点数-最大匹配数
#include <iostream>#include <string.h>#include <stdio.h>using namespace std;const int maxn=510;int cat_cnt,dog_cnt;int g[maxn][maxn];int linker[maxn];bool used [maxn];string s1,s2;struct node{ string love; string hate;}cat[maxn],dog[maxn];bool dfs(int u){ for(int v=0;v<dog_cnt;v++) { if(g[u][v]&&!used[v]) { used[v]=true; if(linker[v]==-1||dfs(linker[v])) { linker[v]=u; return true; } } } return false;}int hungry(){ int res=0; memset(linker,-1,sizeof(linker)); for(int u=0;u<cat_cnt;u++) { memset(used,false,sizeof(used)); if(dfs(u)) res++; } return res;}//以上是二分图模板void init(){ //s1.clear(); //s2.clear(); cat_cnt=0;//这个地方需要每次重新赋初值 dog_cnt=0; for(int i=0;i<maxn;i++) { cat[i].love.clear(); dog[i].love.clear(); cat[i].hate.clear(); dog[i].hate.clear(); }}int main(){ int n,m,p; while(cin>>n>>m>>p) { init(); memset(g,0,sizeof(g)); for(int i=1;i<=p;i++) { s1.clear(); s2.clear(); cin>>s1>>s2; if(s1[0]=='C') { cat[cat_cnt].love=s1; cat[cat_cnt++].hate=s2; } else if(s1[0]=='D') { dog[dog_cnt].love=s1; dog[dog_cnt++].hate=s2; } } for(int i=0;i<cat_cnt;i++) for(int j=0;j<dog_cnt;j++) { if(cat[i].hate==dog[j].love||cat[i].love==dog[j].hate) g[i][j]=1; } int ans=hungry(); cout<<p-ans<<endl; // cout<<ans<<endl; } return 0;}
0 0
- hdu2768Cat VS Dog(最大独立集)
- hdu2768Cat vs. Dog (反建法,最大独立集)
- HDU2768Cat vs. Dog(最大独立集)
- HDU2768Cat vs. Dog二分图 最大独立集(最大匹配)
- HDU 3829 Cat VS Dog(最大独立集)
- HDU 3829 Cat VS Dog (最大独立点集)
- hdu 2768 Cat vs. Dog (最大独立集)
- hdu 3829 Cat VS Dog(最大独立集)
- hdu 2768 Cat vs. Dog(最大独立集)
- HDU-3829 Cat VS Dog(最大独立集)
- hdu3829——Cat VS Dog(最大独立集)
- Hdu3829 Cat VS Dog(最大独立点集)
- HDU 3829 Cat VS Dog(最大独立集)
- HDU3829Cat VS Dog(二分图最大独立集)
- hdu3829-Cat VS Dog(最大独立集,匹配问题)
- hdu2768 Cat vs. Dog (最大独立集)
- hdu_2768 Cat vs. Dog 最大独立集
- hdu2768 Cat vs. Dog【最大独立集】
- WIN10 使用Aventail VPN Connection无法连接公司VPN
- C# 字符串中判断存在的几种模式和效率(string.contains、string.IndexOf、Regex.Match)
- House Robber III
- Python数据分析学习笔记四
- 图像掩膜和伪彩色处理matlab
- hdu2768Cat VS Dog(最大独立集)
- HTTP网络连接相关知识整理(二):网络IO
- 会场安排问题
- iOS-发布APP到APP STORE步骤(En)
- 工具类整理 php 文件处理 二维码生成 laravel 移动设备判断
- c++primer plus 第六版 练习答案
- utf8汉字编码16进制对照
- ACM刷题之ZOJ————Defuse the Bomb
- windows10下theano启用gpu:CUDA + Anaconda