hdu 2768 二分图匹配
来源:互联网 发布:golang sleep 毫秒 编辑:程序博客网 时间:2024/06/16 19:23
这题考的貌似是建边;
如果俩人喜欢和讨厌有冲突那么俩人之间建边;
跑二分图匹配求最大匹配;
再用总人数一减就是结果;
#include<bits/stdc++.h>using namespace std;struct qq{ int u,next;}g[505];int top;int head[505],f[505],book[505];int map1[505][505];void add(int u,int v){ g[top].u=v; g[top].next=head[u]; head[u]=top++;}int v;int dfs(int x){ for(int j=0;j<v;j++) { //int u=g[i].u; if(!book[j]&&map1[x][j]) { book[j]=1; if(f[j]==-1||dfs(f[j])) { f[j]=x; return 1; } } } return 0;}char ss[505][6];char ss1[505][6];int main(){ int t; int c,d;scanf("%d",&t); while(t--) { memset(map1,0,sizeof(map1)); scanf("%d%d%d",&c,&d,&v); for(int i=0;i<v;i++) { scanf(" %s",ss[i]); scanf(" %s",ss1[i]); } memset(head,-1,sizeof(head)); memset(f,-1,sizeof(f)); top=0; for(int i=0;i<v;i++) { for(int j=0;j<v;j++) { if(!strcmp(ss[i],ss1[j])||!strcmp(ss1[i],ss[j])) { map1[i][j]=1; } } } int ans=0; for(int i=0;i<v;i++) { memset(book,0,sizeof(book)); if(dfs(i))ans++; } printf("%d\n",v-ans/2); }}
阅读全文
0 0
- hdu 2768 二分图匹配
- HDU-2063 二分图匹配
- HDU-2444 二分图匹配
- HDU-3729 二分图匹配
- hdu 2063 二分图匹配
- HDU 1083 二分匹配图
- 二分图匹配 hdu 1045
- 二分图匹配 hdu 2063
- 二分图匹配 hdu 1150
- hdu 2819 二分图匹配
- HDU 4185(二分图匹配)
- HDU 5727 (二分图匹配)
- HDU 5352 (二分图匹配)
- HDU 1045 二分图匹配
- HDU 3729 二分图匹配
- HDU 1083 二分图匹配
- hdu 1150 二分图匹配
- hdu 1068 二分图匹配
- Lua中变相实现continue跳出循环
- hihocoder 1049 : 后序遍历
- C语言模式实现C++继承和多态
- springmvc 接收字符串的Date 方法及返回字符串类型DATE给前端
- stm32库函数下,输出可调频率pwm
- hdu 2768 二分图匹配
- hdu 6047 Maximum Sequence
- java框架之MybatisSQL注入漏洞
- 云服务器Tomcat版本升级(Tomcat6升级至Tomcat7和Tomcat8)问题总结
- 使用cache tier
- 【js基础】javascript中几种常见的继承方式。
- DOM节点删除之保留数据的删除操作detach()
- linux常用的命令
- Tensorflow for linux 安装过程