博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FOJ 2232 匈牙利算法找二分图最大匹配
阅读量:4315 次
发布时间:2019-06-06

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

尽量让每一个随从击败一个对手且随从全部存活,关键是为每一个随从找对手(递归过程),"腾"。

#include
#include
#include
using namespace std;int used[110];int g[110][110]; //建立随从和对手的对战关系int ee[110];int n;struct people{ int live; int attack;}man[110],enemy[110];bool find(int j) { for(int k=1;k<=n;k++) { if(g[j][k] && used[k]==0) { used[k]=1; if(ee[k]==0 || find(ee[k])) { ee[k]=j; return true; } } } return false;}int main() { int test,all; scanf("%d",&test); while(test--) { cin>>n; all=0; memset(ee,0,sizeof(ee)); memset(g,0,sizeof(g)); for(int i=1;i<=n;i++) { scanf("%d%d",&man[i].live,&man[i].attack); } for(int i=1;i<=n;i++) { scanf("%d%d",&enemy[i].live,&enemy[i].attack); } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { g[i][j]=man[i].attack>=enemy[j].live&&man[i].live>enemy[j].attack; } } int flag=1; for(int i=1;i<=n;i++) { memset(used,0,sizeof(used)); if(!find(i)) { flag=0; break; } } if(flag==1) { printf("Yes\n"); } else { printf("No\n"); } } return 0;}

 

转载于:https://www.cnblogs.com/LinesYao/p/5463655.html

你可能感兴趣的文章
AOP面向切面编程C#实例
查看>>
怎么让win7右下角只显示时间不显示日期 ?(可行)
查看>>
AngularJs学习笔记-慕课网AngularJS实战
查看>>
数据库三大范式
查看>>
工作总结之二:bug级别、优先级别、bug状态
查看>>
访问修饰符、封装、继承
查看>>
更换pip源到国内镜像,提升pip下载速度.
查看>>
POJ 2265 Bee Maja (找规律)
查看>>
Kendo MVVM 数据绑定(七) Invisible/Visible
查看>>
DB Intro - MySQL and MongoDB
查看>>
Practical Mathematical Handwriting
查看>>
[zz]kvm环境使用libvirt创建虚拟机
查看>>
bzoj1059 [ZJOI2007]矩阵游戏
查看>>
JDK配置步骤
查看>>
springcloud微服务实战--笔记
查看>>
View(视图)——菜单Menu
查看>>
uva 408 Uniform Generator
查看>>
SharePoint 2010 类似人人网站内信功能实施
查看>>
CF 327E(Axis Walking-状态压缩Dp-lowbit的使用)
查看>>
object对象java 利用反射 从数据库取出数据对象list 类似hibernate
查看>>