LA 3989 - Ladies' Choice【稳定婚姻问题】
来源:互联网 发布:老男孩linux运维2017 编辑:程序博客网 时间:2024/05/08 21:01
稳定婚姻学习资料:
http://www.matrix67.com/blog/?s=%E7%A8%B3%E5%AE%9A%E5%A9%9A%E5%A7%BB
http://www.programmer.com.cn/12001/
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1990
题意:稳定婚姻
代码:
#include <stdio.h>#include <iostream>#include <math.h>#include <stdlib.h> #include <ctype.h> #include <algorithm> #include <vector> #include <string.h> #include <queue> #include <stack> #include <set> #include <map> #include <string> #include <sstream> #include <malloc.h>using namespace std;const int MAXN = 1010;int pref[MAXN][MAXN], order[MAXN][MAXN], Next[MAXN];int future_husband[MAXN], future_wife[MAXN];queue<int> q;void engage(int man, int woman){ int m = future_husband[woman]; if (m) { future_wife[m] = 0; q.push(m); } future_wife[man] = woman; future_husband[woman] = man;}int main(){ int t; scanf("%d",&t); while (t--) { while (!q.empty()) q.pop(); int n; scanf("%d", &n); for (int i = 1;i <= n;i++) { for (int j = 1;j <= n;j++) scanf("%d",&pref[i][j]); Next[i] = 1; future_wife[i] = 0; q.push(i); } for (int i = 1;i <= n;i++) { for (int j = 1;j <= n;j++) { int x; scanf("%d", &x); order[i][x] = j; } future_husband[i] = 0; } while (!q.empty()) { int man = q.front();q.pop(); int woman = pref[man][Next[man]++]; if (!future_husband[woman]) engage(man, woman); else if (order[woman][man] < order[woman][future_husband[woman]]) engage(man, woman); else q.push(man); } for (int i = 1;i <= n;i++) printf("%d\n", future_wife[i]); if (t) printf("\n"); } return 0;}
0 0
- LA 3989 - Ladies' Choice 稳定婚姻问题
- LA 3989 Ladies'Choice(稳定婚姻问题)
- LA 3989 - Ladies' Choice【稳定婚姻问题】
- LA 3989 Problem I – Ladies’ Choice 稳定婚姻问题
- uvalive 3989 Ladies' Choice 稳定婚姻问题
- UVALive 3989 - Ladies' Choice(稳定婚姻匹配)
- 【LA3989】Ladies' Choice【稳定婚姻】
- UVA 1175 - Ladies' Choice(稳定婚姻问题)
- uva 1175 Ladies' Choice (稳定婚姻问题)
- uva 1175 - Ladies' Choice(稳定婚姻问题)
- UVA 1175 Ladies's Choice(稳定婚姻问题)
- UVALive 3989 Ladies' Choice(稳定婚姻问题、Gale-Shapley算法)
- Regionals 2007 >> Europe - Southwestern Ladies' Choice 稳定婚姻问题 uva live 3989
- zoj - 3037 - Ladies' Choice(稳定婚姻)
- LA3987 Ladies’ Choice 婚姻稳定算法
- la 3989(稳定婚姻问题)
- LA 3989 稳定婚姻匹配
- UVALive 3989 Ladies' Choice
- PHP开发环境搭建(PHP+Apache+MySQL)
- 关于Deadlock的例子
- EJB杂项
- Map遍历
- leetcode刷题,总结,记录,备忘 107
- LA 3989 - Ladies' Choice【稳定婚姻问题】
- 多个大小不同的UILabel底部对齐的方法
- 排序
- leetcode hIndex implemented with python
- 第二周项目三—体验复杂度(2)
- Scrum Meeting
- 0 基础怎样开始学习做网站 (Ruby on Rails)?
- document 和 window.document
- 如何设置显示Linux vim编辑器的行号?修改Table键跳过的格数?