题意:稳定婚姻匹配问题,板子题。

题解:稳定婚姻匹配
还好做了这题,之前的板子有点问题,1435数据太弱了。

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<fstream>
#include<set>
#include<map>
#include<sstream>
#include<iomanip>
#define ll long long
#define pii pair<int, int>
using namespace std;
//稳定婚姻匹配
const int maxn = 505;
string str[maxn * 2];
int n;
int boy_love_who[maxn][maxn], girl_love_fir[maxn][maxn];
int boy[maxn], girl[maxn], kth[maxn];
inline void G_S() {for (int i = 1; i <= n; i++) boy[i] = girl[i] = kth[i] = 0;bool flag, no = 0;int xx = 1;while (true) {flag = false;for (int i = 1; i <= n; i++) {if (!boy[i]) {int g = boy_love_who[i][++kth[i]];if (kth[i] > n) {no = 1;break;}if (!girl[g]) {girl[g] = i;boy[i] = g;continue;}else if (girl_love_fir[g][i] < girl_love_fir[g][girl[g]]) {boy[girl[g]] = 0;girl[g] = i;boy[i] = g;}flag = true;}}if (no) break;if (!flag) break;}if (no) puts("Impossible");else for (int i = 1; i <= n; i++) cout << str[girl[i]] << " " << str[i + n] << endl;
}
int main() {while (~scanf("%d", &n)) {map<string, int> m, m2;int id = 0;string s;for (int i = 1; i <= n; i++) {cin >> s;m[s] = i;str[i] = s;for (int j = 1; j <= n; j++) {cin >> s;if (!m2[s]) {m2[s] = ++id;str[id + n] = s;}boy_love_who[i][j] = m2[s];}}for (int i = 1; i <= n; i++) {cin >> s;int x = m2[s];for (int j = 1; j <= n; j++) {cin >> s;girl_love_fir[x][m[s]] = j;}}G_S();}return 0;
}

HDU 1522 Marriage is Stable (稳定婚姻匹配)相关推荐

  1. HDU 1914 The Stable Marriage Problem (稳定婚姻匹配)

    题意:稳定婚姻匹配问题,板子题. 题解:稳定婚姻匹配 注意按字典序输出,还有输出格式,最后个样例不输出空行. #define _CRT_SECURE_NO_WARNINGS #include<i ...

  2. Marriage is Stable 【HDU - 1522】【稳定婚姻匹配问题】

    题目链接 什么是婚姻匹配问题呢?我做了这道题后就有了这样的体会 -- 比谁更渣??? 我们知道,有N个男生还有N个女生,要把每个男生和女生匹配起来,让他们结婚,但是呢,有这样的情况,就是假如我们现在B ...

  3. HDU 1435 Stable Match (稳定婚姻匹配)

    题意:建立一个匹配表,使得一个发射点对应一个接收点,对于某一个发射点来说,它的接收点离它越近那么就会更稳定,同样对于接收点也是一样的情况. 匹配的目标是使得整个网络变得稳定. 对于某2个匹配,比如,( ...

  4. 稳定婚姻匹配(Stable Match, HDOJ 1435, HDOJ 1914, 详解)

    稳定婚姻匹配 HDOJ 1435 Stable Match(此例基于发射点优先的匹配,但题目并未明确表明) Time Limit: 2000/1000 MS (Java/Others) Memory ...

  5. SGU 264 Travel(稳定婚姻匹配)

    题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=264 题意:稳定婚姻匹配. 思路:对于每个男的依次从自己最喜欢的女的开始求婚若女的还 ...

  6. Hdu1914稳定婚姻匹配

    题意: 给出 n 个男生,n 个女生,给出他们对异性的喜欢顺序,求一个稳定的婚姻组合. 思路: 稳定婚姻匹配裸题 #include <cstdio> #include <cstrin ...

  7. ALG1:GS算法,稳定婚姻匹配问题

    ALG1:GS算法,稳定婚姻匹配问题 问题描述如下: (详见NKU计算机上机课程辅助评测) 稳定婚姻匹配 实现代码: (此代码逻辑可通过全部测试样例) 由于代码有一段时间了,一下的展示代码是没有自己的 ...

  8. HDU - 3081 Marriage Match II 【二分匹配】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3081 题意 有n对男女 女生去选男朋友 如果女生从来没和那个男生吵架 那么那个男生就可以当她男朋友 女 ...

  9. hdu - 1435 Stable Match 稳定婚姻问题、Gale-Shapley算法模板

    稳定婚姻的描述: 假如你是一个媒人,有若干个单身男子登门求助,还有同样多的单身女子也前来征婚.如果你已经知道这些女孩儿在每个男孩儿心目中的排名,以及男孩儿们在每个女孩儿心中的排名,你应该怎样为他们牵线 ...

最新文章

  1. ESI世界大学排名:371所内地高校上榜!
  2. 怎么申请微信支付接口
  3. golang reflect
  4. anaconda有什么用?pycharm有什么用?anaconda怎么与pycharm一起联合使用?
  5. 不关闭seLinux解决vsftpd服务本地用户不能登录问题(500 OOPS: cannot change directory:/home/***
  6. linux 定时任务 crontab服务 启动 停止 重启
  7. ZT Android4.2蓝牙基础架构学习
  8. 8.OD--函数参考
  9. 2015广州计算机网络试题及答案,2015广州大学计算机网络试卷-B卷及答案.doc
  10. 计算机程序制作的小作品,义乌市中小学生电脑作品制作比赛201203
  11. javascript图片库威力增强版
  12. Linux_CentOS-服务器搭建 五 补充
  13. 感谢所有常来我博客的朋友
  14. 腾讯PHP工程师面试题两份
  15. 馈线互调测试仪仿真软件,CYME电力工程仿真分析软件
  16. python字符串怎么加绝对值_每日一练 | Python绝对值有哪些实例?
  17. Qt - 菜单栏、工具栏、状态栏(菜单栏、工具栏、状态栏添加方法)
  18. Linux(Ubuntu 22.04)虚拟机共享主机上的文件夹
  19. 18项政策奖励助力武汉加快区域金融中心建设,申报奖励以及申报流程汇总
  20. 完美解决各种spring项目报错问题

热门文章

  1. not a valid representation
  2. java动态规划解决工程,求帮助解决这道题(动态规划)
  3. 如何在nginx下配置网关,实现跨域请求
  4. 前端实现在线预览文档
  5. Error Missing optional dependency ‘xlrd‘. Install xlrd = 1.0.0 for Excel support Use pipinstall xlr
  6. 虚拟创业云|BBC幼儿英语启蒙动画Alphablocks字母积木全4季
  7. java 方法参数多_java 方法参数过多,怎么处理?
  8. 利用ArcGIS处理土地利用数据:计算fishnet每个格网中不同地类的面积
  9. ubuntu 16.04LTS 开机启动自动更换壁纸
  10. 【独家干货】医院电子病历体系的构建与应用