博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA5874 Social Holidaying 二分匹配
阅读量:4613 次
发布时间:2019-06-09

本文共 1334 字,大约阅读时间需要 4 分钟。

二分匹配简单题,看懂题意,建图比较重要。

#include
#include
#define maxn 1100int map[maxn][maxn];int a[maxn],b[maxn],match[maxn],vis[maxn];int n,m;void makemap(){ int i,j,k; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { for(k=1;k<=m;k++) { if(a[i]+a[j]==b[k]) { map[i][j]=1; } } } } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) printf("%d ",map[i][j]); printf("\n"); }}int dfs(int u){ int i,j; for(i=1;i<=n;i++) { if(!vis[i]&&map[u][i]) { vis[i]=1; if(match[i]==-1||dfs(match[i])) { match[i]=u; return 1; } } } return 0;}int main(){ int i,j,t; scanf("%d",&t); while(t--) { memset(map,0,sizeof(map)); scanf("%d%d",&n,&m); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=m;i++) scanf("%d",&b[i]); makemap(); int ans=0; memset(match,-1,sizeof(match)); for(i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); if(dfs(i)) ans++; } printf("%d\n",ans/2); }}

 

转载于:https://www.cnblogs.com/sweat123/p/4738282.html

你可能感兴趣的文章
CSS——水平/垂直居中
查看>>
Eclipse连接mysql数据库jdbc下载(图文)
查看>>
Python中Selenium的使用方法
查看>>
三月23日测试Fiddler
查看>>
20171013_数据库新环境后期操作
查看>>
poj 1654 && poj 1675
查看>>
运维派 企业面试题1 监控MySQL主从同步是否异常
查看>>
Docker 版本
查看>>
poj 1753 Flip Game
查看>>
在深信服实习是怎样的体验(研发测试岗)
查看>>
Linux免密码登陆
查看>>
SpringMVC中文件的上传(上传到服务器)和下载问题(二)--------下载
查看>>
Socket & TCP &HTTP
查看>>
osip及eXosip的编译方法
查看>>
Hibernate composite key
查看>>
[CF Round #294 div2] D. A and B and Interesting Substrings 【Map】
查看>>
keepalived+nginx安装配置
查看>>
我的2015---找寻真实的自己
查看>>
android编译遇到问题修改
查看>>
解决Ubuntu18.04.2远程桌面Xrdp登录蓝屏问题
查看>>