uvalive 3989 Ladies' Choice 稳定婚姻问题

原创 2015年11月20日 10:41:37
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
const int N=1024;

int n,boy[N][N],girl[N][N];
int btg[N],gtb[N],cnt[N];

queue<int>q;

int main()
{
    int _,i,j,t,u,v;
    scanf("%d",&_);
    while(_--)
    {
        scanf("%d",&n);
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                scanf("%d",&boy[i][j]);

         for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                {
                    scanf("%d",&t);
                    girl[i][t]=j;
                }
        for(i=1;i<=n;i++)
        {
            btg[i]=-1;
            gtb[i]=0;
            cnt[i]=1;
        }

        for(i=1;i<=n;i++)
            if(btg[i]==-1)
                q.push(i);

        while(!q.empty())
        {
            u=q.front();
            q.pop();
            t=boy[u][cnt[u]++];
            v=gtb[t];
            if(v==0)
            {
                gtb[t]=u;
                btg[u]=t;
            }
            else if(girl[t][v]>girl[t][u])
            {
                q.push(v);
                btg[v]=-1;
                gtb[t]=u;
                btg[u]=t;
            }
            else
                q.push(u);
        }

        for(i=1;i<=n;i++)
            printf("%d\n",btg[i]);
        if(_) printf("\n");
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。http://www.xiang578.com

相关文章推荐

uvalive 3989(线段树)

题意:给出长度是n的数字序列,然后给出位置x, y,问在[x, y]这个范围内有最大和的连续子序列的范围是什么。 题解:和普通的线段树不太一样,还加入了连续子序列,求连续子序列最大和的方法有个是把序...

UVALive 3989 Ladies' Choice(稳定婚姻问题、Gale-Shapley算法)

题目:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&pr...

LA 3989 - Ladies' Choice 稳定婚姻问题

在盛大的校园舞会上有n位男生和n位女生,每人都对每个异性有一个排序,代表对他们的喜欢程度。你的任务是将男生和女生一一配对,使得男生U和女生V不存在一下情况1.男生u和女生v不是舞伴2,他们喜欢对方的程...

poj3487 稳定婚姻问题

稳定婚姻问题,虽然简单,但是挺有意思的。 poj3487中要注意,这道题中的字母并不是一定要从a开始连续的,注意哦。 #include #include #include #include usi...

[转]稳定婚姻匹配问题 EOJ 162 The Stable Marriage Problem

首先说明:本文不是讨论婚姻问题的,而是一篇以日常生活的婚姻问题为例子说明一个有趣的算法:Gale-Shapley算法(延迟认可算法),如果你为此感到失望的话,我将表示我歉意,但是你如果有兴趣的话,还是...
  • pbj1203
  • pbj1203
  • 2011年03月02日 17:29
  • 2545

The Stable Marriage Problem(稳定婚姻问题)

Description   The stable marriage problem consists of matching members of two different sets a...

顾森:稳定婚姻问题和Gale-Shapley算法

什么是算法?每当有人问作者这样的问题时,他总会引用这个例子:假如你是一个媒人,有若干个单身男子登门求助,还有同样多的单身女子也前来征婚。如果你已经知道这些女孩儿在每个男孩儿心目中的排名,以及男孩儿们在...
  • tywali
  • tywali
  • 2012年06月19日 12:58
  • 2038

稳定婚姻问题(自己的总结)

稳定婚姻问题就是给你n个男的,n个女的,然后给你每个男生中女生的排名,和女生心目中男生的排名,然后让你匹配成n对,使婚姻稳定,假如a和b匹配,c和d匹配,如果a认为d比b好,同时d也认为a比c好,那么...

HDU 1522 Marriage is Stable 稳定婚姻问题 (再水一发)

http://acm.hdu.edu.cn/showproblem.php?pid=1522\ /********************************************* P...
  • NMfloat
  • NMfloat
  • 2016年02月20日 14:43
  • 188

ZOJ 1576 Marriage is Stable 稳定婚姻问题

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1576 稳定婚姻是组合数学里面的一个问题。         ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:uvalive 3989 Ladies' Choice 稳定婚姻问题
举报原因:
原因补充:

(最多只允许输入30个字)