题目链接

题意:n个男生和女生,先是n行n个数,表示每一个女生对男生的好感值排序,然后是n行n列式每一个男生的好感值排序,输出N行,即每个女生在最好情况下的男生的编号

分析:如果是求女生的最好情况下,就要从女生开始选,这样女生都是从最好的到不好的来选,而男生却相反--只能娶那些自己有可能最没好感的女生,因为男生是被动的,他最喜欢的女生不见的会向他求婚。

刘汝佳书上命名错了,so也跟着把男生当成女生了,懒得改命名了,

 #include <iostream>
 #include <cstring>
 #include <algorithm>
 #include <cstdio>
 #include <queue>
 using namespace std;
 ;
 int pref[Max][Max], order[Max][Max], Next[Max];
 int future_hasband[Max], future_wife[Max];
 queue <int> q; //单身女生队列
 void engage(int man, int woman)
 {
     int m = future_hasband[woman];
     if(m)
     {
         future_wife[m] = ;
         q.push(m);
     }
     future_hasband[woman] = man;
     future_wife[man] = woman;
     return;
 }
 int main()
 {
     int T;
     scanf("%d", &T);
     while(T--)
     {
         int n;
         scanf("%d", &n);
         while(!q.empty())
             q.pop();
         ; i <= n; i++)
         {
             ; j <= n; j++)
                 scanf("%d", &pref[i][j]);
             future_wife[i] = ;  // 女生i没有匹配
             Next[i] = ; // 都是从第一个开始查找
             q.push(i);  // 加入单身队列
         }
         ; i <= n; i++)
         {
             ; j <= n; j++)
             {
                 int x;
                 scanf("%d", &x);
                 order[i][x] = j;  // 表示男生i 对 女生 x 的好感等级
             }
             future_hasband[i] = ;
         }
         while(!q.empty())
         {
             int man = q.front();
             q.pop();
             int woman = pref[man][Next[man]++];
             )  // 表示这个男生并没有 匹配
                 engage(man, woman);
             else if(order[woman][man] < order[woman][future_hasband[woman]])  // 虽然已经匹配了,但是同已经匹配的好感层度来看,更喜欢这个
                 engage(man, woman);
             else
                 q.push(man); // 否则继续单身,等待下次解救
         }
         ; i <= n; i++)
             printf("%d\n", future_wife[i]);
         if(T)
             printf("\n");
     }

     ;
 }

UVALive 3989Ladies' Choice(稳定婚姻问题)的更多相关文章

  1. UVA 1175 Ladies&#39; Choice 稳定婚姻问题

    题目链接: 题目 Ladies' Choice Time Limit: 6000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu 问题 ...

  2. 【UVAlive 3989】 Ladies&#39; Choice (稳定婚姻问题)

    Ladies' Choice Teenagers from the local high school have asked you to help them with the organizatio ...

  3. 【HDU1914 The Stable Marriage Problem】稳定婚姻问题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1914 题目大意:问题大概是这样:有一个社团里有n个女生和n个男生,每位女生按照她的偏爱程度将男生排序, ...

  4. BZOJ2140: 稳定婚姻

    题解: 题意就是求二分图的必须边. 我们有结论: 在残量网络上跑tarjan,对于一条边(u,v) 如果该边满流||scc[u]==scc[v],那么该边是可行边. 因为如果scc[u]==scc[v ...

  5. 【POJ 3487】 The Stable Marriage Problem (稳定婚姻问题)

    The Stable Marriage Problem   Description The stable marriage problem consists of matching members o ...

  6. 【稳定婚姻问题】【HDU1435】【Stable Match】

    2015/7/1 19:48 题意:给一个带权二分图  求稳定匹配 稳定的意义是对于某2个匹配,比如,( a ---- 1) ,(b----2) , 如果 (a,2)<(a,1) 且(2,a)& ...

  7. poj 3487 稳定婚姻

    /** 稳定婚姻:男生不停的求婚,女生不停地拒绝 **/ #include <iostream> #include <queue> #include <cstdio> ...

  8. 稳定婚姻问题和Gale-Shapley算法(转)

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

  9. UVALive 3989 Ladies&#39; Choice(稳定婚姻问题:稳定匹配、合作博弈)

    题意:男女各n人,进行婚配,对于每个人来说,所有异性都存在优先次序,即最喜欢某人,其次喜欢某人...输出一个稳定婚配方案.所谓稳定,就是指未结婚的一对异性,彼此喜欢对方的程度都胜过自己的另一半,那么这 ...

随机推荐

  1. 树莓派:raspberry pi 3b - NOOBS

    NOOBS - 多操作系统安装器,可以将不同支持树莓派的流行操作系统安装在一张SD卡中并提供一个启动管理工具,安装的不同操作系统相互独立,互不影响,是一种比较有意思的玩法. 从版本1.3.1开始到1. ...

  2. 【BZOJ-4245】OR-XOR 按位贪心

    4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 486  Solved: 266[Submit][Sta ...

  3. SQL Server中smalldatetime的日期范围为何是[1900-01-01,2079-06-06]

    本文目录列表: 1.SQL Server中的基准日期 2.smalldatetime的日期范围 3.smalldatetime的日期范围和无符号2字节整数的关系 4.总结语 5.参考清单列表   SQ ...

  4. 【iCore3应用开发平台】发布 iCore3 应用开发平台使用说明

    PDF下载地址:http://pan.baidu.com/s/1c2ca2lU

  5. 24-React Components组件

    Components 组件 1.组件 可以让UI独立的分割出来,可以让UI重复利用. 2.组件就像是JavaScript函数,它们能够接收任意的输入(称为"props",即属性)并 ...

  6. elasticsearch 初学 笔记(1)

    使用 curl进行数据的的格式, 1.下载curl,配置路径 格式 C:\Users\Administrator>curl -XPUT http://localhost:9200/dept/em ...

  7. 通过JavaScript改变HTML样式

    语法:Object.style.property=new style; 基本属性表如下: 示例: 改变 <p> 元素的样式,将颜色改为红色,字号改为20,背景颜色改为蓝: <p id ...

  8. 如何使用硬盘安装debian8.3?

    环境:能开机的windowsxp系统+debian8.3cd+wingrub 大致原理:使用wingrub编辑启动菜单,编辑root根目录,加载相对根目录的linux内核kernel,加载initrd ...

  9. 不同场景下 MySQL 的迁移方案

    一 目录 一 目录 二 为什么要迁移 三 MySQL 迁移方案概览 四 MySQL 迁移实战 4.1 场景一 一主一从结构迁移从库 4.2 场景二 一主一从结构迁移指定库 4.3 场景三 一主一从结构 ...

  10. php 无法连接mysql

    sql_connect,sqli_connect, 或new sqli() 无法建立mysql连接 1. php.ini 中 ; extension=php_mysql.dll 和 ; extensi ...