题目链接:https://vjudge.net/problem/UVALive-3989

题解:

题意:有n个男生和n个女生。每个女生对男神都有个好感度排行,同时每个男生对每个女生也有一个好感度排行。问:怎样配对,才能使的每个女生尽可能幸福。规定在配对的过程中,如果一对男女不是舞伴,且他们喜欢对方的程度都大于当前的舞伴,那么他么会“私奔”,留下他们的舞伴孤零零。由于是要每个女生尽可能幸福,所以女生根据喜欢程度,主动去男生。而男生只能处于被动的状态。

代码如下:

 #include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int INF = 2e9;
const LL LNF = 9e18;
const int mod = 1e9+;
const int MAXN = 1e3+; int pref[MAXN][MAXN], order[MAXN][MAXN], Next[MAXN];
int future_husband[MAXN], future_wife[MAXN];
queue<int>q; void engage(int woman, int man)
{
int w = future_wife[man];
if(w)
{
future_husband[w] = ;
q.push(w);
}
future_wife[man] = woman;
future_husband[woman] = man;
} int main()
{
int T, n;
scanf("%d", &T);
while(T--)
{
scanf("%d", &n);
for(int i = ; i<=n; i++)
{
for(int j = ; j<=n; j++)
scanf("%d", &pref[i][j]);
Next[i] = ;
future_husband[i] = ;
q.push(i);
} for(int i = ; i<=n; i++)
{
for(int j = ; j<=n; j++)
{
int x;
scanf("%d", &x);
order[i][x] = j;
}
future_wife[i] = ;
} while(!q.empty())
{
int woman = q.front(); q.pop();
int man = pref[woman][Next[woman]++];
if(!future_wife[man])
engage(woman, man);
else if(order[man][woman]<order[man][future_wife[man]])
engage(woman, man);
else q.push(woman);
}
while(!q.empty()) q.pop(); for(int i = ; i<=n; i++)
printf("%d\n", future_husband[i]);
if(T) printf("\n");
}
}

最新文章

  1. Unity贴图锯齿
  2. Web API应用架构在Winform混合框架中的应用(1)
  3. CodeForces 37E Trial for Chief
  4. 【Git】标签管理
  5. Android开发在路上:少去踩坑,多走捷径
  6. CSS元素类型
  7. wpa_supplicant 和 802.11g WPA 认证的配置
  8. oracle根据pid查询出正在执行的执行语句
  9. phonegap 4.2 环境搭建 及 项目创建 运行
  10. Android各代码层获取系统时间的方法
  11. Java中间件:淘宝网系统高性能利器(转)
  12. 第二章:2.9 总结一下 Django
  13. 【Unity游戏开发】浅谈Unity游戏开发中的单元测试
  14. 排序算法Java实现(直接插入排序)
  15. html5中新增的元素和废除的元素
  16. 7.docker日志收集
  17. Numpy 数组属性
  18. .NET开源项目 QuarkDoc 一款自带极简主义属性的文档管理系统
  19. Spark RDD Transformation 简单用例(二)
  20. 2.虚拟机安装的ubuntu全屏显示

热门文章

  1. springMVC中处理静态资源的几种方案
  2. python练习——小程序
  3. 修改centos的yum源为国内的源
  4. PTA 01-复杂度1 最大子列和问题 (20分)
  5. [转]使用fdisk磁盘分区和 Linux 文件系统
  6. android开发里跳过的坑-电源锁WakeLock不起作用
  7. android开发里跳过的坑——android studio打包的APK签名无效
  8. 事件和委托:第 5 页 委托、事件与Observer设计模式
  9. SGU 104 Little shop of flowers【DP】
  10. service mesh架构