栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 3120 The Stable Marriage ...

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 3120 The Stable Marriage ...

#include <stdio.h>#include <string.h>int m[27][27], f[27][27];  int mar_m[27], mar_f[27];  int ch_m[27], ch_f[27], n;  int better_m(int x, int g){    int i, j;    for(i = 0; i < n; i++)if(x == f[g][i]) break;    for(j = 0; j < n; j++)if(ch_f[g] == f[g][j]) break;    if(i < j) return 1;    else return 0;}int main(void){    int T, i, j, tf, sign;    char tch[35];    scanf("%d", &T);    while(T--)    {for(i = 0; i < 27; i++){   mar_m[i] = mar_f[i] = 1;   ch_m[i] = -1;}scanf("%d", &n);for(i = 0; i < n; i++){   scanf("%s", tch);   mar_m[tch[0] - 'a'] = 0;}for(i = 0; i < n; i++){   scanf("%s", tch);   mar_f[tch[0] - 'A'] = 0;}for(i = 0; i < n; i++){   scanf("%s", tch);   for(j = 0; j < n; j++)m[tch[0]-'a'][j] = tch[2+j] - 'A';}for(i = 0; i < n; i++){   scanf("%s", tch);   for(j = 0; j < n; j++)f[tch[0]-'A'][j] = tch[2+j] - 'a';}sign = 1;while(sign){   sign = 0;   for(i = 0; i < 27; i++)   {while(mar_m[i] == 0){   ch_m[i]++;   tf = m[i][ch_m[i]];   if(mar_f[tf] == 0)   {mar_f[tf] = 2;ch_f[tf] = i;mar_m[i] = 2;sign = 1;   }   else if(mar_f[tf] == 2 && better_m(i, tf))   {mar_m[ch_f[tf]] = 0;ch_f[tf] = i;mar_m[i] = 2;sign = 1;   }}   }}for(i = 0; i < 27; i++){   if(mar_m[i] == 2)printf("%c %cn", i+'a', m[i][ch_m[i]]+'A');}if(T) printf("n");    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377140.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号