LightOJ 1400 - Employment【稳定婚姻问题】
来源:互联网 发布:mac迅雷没速度 编辑:程序博客网 时间:2024/05/21 10:07
题目连接:http://www.lightoj.com/volume_showproblem.php?problem=1400
代码:
#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, cases = 1; scanf("%d",&t); while (t--) { while (!q.empty()) q.pop(); memset(future_husband, 0, sizeof(future_husband)); memset(future_wife, 0, sizeof(future_wife)); memset(Next, 0, sizeof(Next)); int n; scanf("%d", &n); for (int i = 1;i <= n;i++) { for (int j = 1;j <= n;j++) { int x; scanf("%d", &x); pref[i][j] = x - n; } Next[i] = 1; 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; } } 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); } printf("Case %d:", cases++); for (int i = 1;i <= n;i++) printf(" (%d %d)", i,future_wife[i] + n); printf("\n"); } return 0;}
0 0
- LightOJ 1400 - Employment【稳定婚姻问题】
- LightOJ - 1400 Employment(婚姻稳定问题)
- 稳定婚姻问题
- 稳定婚姻问题算法
- 稳定婚姻问题
- poj3487 稳定婚姻问题
- 关于稳定婚姻问题
- 【稳定婚姻问题】
- 稳定婚姻问题
- 稳定婚姻问题
- 稳定婚姻问题
- 稳定婚姻问题算法
- 稳定婚姻问题
- 稳定婚姻问题
- 稳定婚姻问题
- hdu1914 稳定婚姻问题
- hdu1435 稳定婚姻问题
- 稳定婚姻问题
- 复杂Map遍历
- NGUI相关----UITexture图片边缘流光效果
- Linux下VirtualBox安装XP,U盘、U盾无法识别解决办法
- DI注解
- 自定义圆形进度条
- LightOJ 1400 - Employment【稳定婚姻问题】
- AV Foundation day by day-1
- count(字段)不统计null值
- 枚举定义
- AdaultBird--我的黑马程序员之路!Chapter12---面向对象的三大特性!
- Notes on Caffe layers
- 栈的入栈与出栈的序列
- leetcode add digits
- 排序方法性质总结