• UVA 1175


    1175 - Ladies' Choice

    链接

      稳定婚姻问题。

    代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long LL;
     4 
     5 inline int read() {
     6     int x=0,f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;
     7     for (;isdigit(ch);ch=getchar())x=x*10+ch-'0';return x*f;
     8 }
     9 
    10 const int N = 1010;
    11 
    12 int pref[N][N],order[N][N],Boys[N],Girls[N],cur[N];
    13 queue<int>q; // 求婚队列 
    14 
    15 void Link(int u,int v) {
    16     int t = Girls[v];
    17     if (t) {
    18         Boys[t] = 0;
    19         q.push(t);
    20     }
    21     Boys[u] = v;
    22     Girls[v] = u;
    23 }
    24 
    25 void solve() {
    26     int n = read();    
    27     for (int i=1; i<=n; ++i) {
    28         for (int j=1; j<=n; ++j) 
    29             pref[i][j] = read(); // 男孩心中第j个喜欢的女孩 
    30         cur[i] = 1; // 求婚对象 
    31         Boys[i] = 0; // 男孩的 
    32         q.push(i);
    33     }
    34     for (int i=1; i<=n; ++i) {
    35         for (int j=1; j<=n; ++j) {
    36             int t = read();
    37             order[i][t] = j; // 男孩在女孩中的排名 
    38         }
    39         Girls[i] = 0; // 女孩的 
    40     }
    41     while (!q.empty()) {
    42         int u = q.front();q.pop();
    43         int v = pref[u][cur[u]++];
    44         if (!Girls[v]) Link(u,v); 
    45         else if (order[v][u] < order[v][Girls[v]]) Link(u,v);
    46         else q.push(u);
    47     }
    48     while (!q.empty()) q.pop(); 
    49     for (int i=1; i<=n; ++i) 
    50         printf("%d
    ",Boys[i]);
    51 }
    52 int main() {
    53     int Case = read();
    54     while (Case--) {
    55         solve();
    56         if(Case) puts("");
    57     }
    58     return 0;
    59 }
  • 相关阅读:
    单元测试练习
    对软件的看法
    个人最终总结
    论文笔记--Fast RCNN
    个人最终总结2
    结对编程--基于android平台的黄金点游戏(2.0版本)
    结对编程--基于android平台的黄金点游戏
    团队作业(一)
    [java]wordcount程序
    第三周作业(二)
  • 原文地址:https://www.cnblogs.com/mjtcn/p/9276494.html
Copyright © 2020-2023  润新知