题目链接

简单理解匈牙利算法

简单理解二分图

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

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

最新文章

  1. 2016huasacm暑假集训训练四 递推_A
  2. Bzoj3943 [Usaco2015 Feb]SuperBull
  3. MyEclipse------execute()使用方法
  4. NRF51822之pstorage介绍
  5. MySQL Replication的相关文件
  6. 如何用Java解析CSV文件
  7. 未完成的任务之:下载、安装、体验 Gentoo
  8. Ogre实现简单地形
  9. 2-3 tree使用
  10. SQL SERVER 中 实现主表1行记录,子表多行记录 整合成一条虚拟列
  11. Kafka权威指南——broker的常用配置
  12. 使用samba共享文件夹,提供给window访问
  13. crontab清理日志
  14. ios中uitableview上拉刷新和下拉刷新(1)
  15. Navicat导出opencart2.3数据字典
  16. Go语言的传参和传引用[转]
  17. 相等(==)、严格相等(===)、NaN、null、undefined、空和0
  18. BSD Socket~TCP~Example Code
  19. Least slack time scheduling
  20. Docker 入门笔记

热门文章

  1. sublime 插件篇
  2. 笔试真题解析 ALBB-2015 系统project师研发笔试题
  3. 《Lucene in Action 第二版》第4章节 学习总结 -- Lucene中的分析
  4. laravel学习之路4artisan
  5. Android Handler警告,SimpleDateFormat警告
  6. Linux进程间通信(二) - 消息队列
  7. iOS js oc相互调用(JavaScriptCore)---js调用iOS --js里面通过对象调用方法
  8. centos7.0 安装nginx
  9. vue中handsontable 使用
  10. 关于Spring学习解析顺序