模板 - 稳定婚姻问题

整理的算法模板合集: ACM模板


题意:给定n个男人,n个女人,每个人心中对异性都有一个排序,从左往右是最喜欢到最不喜欢,然后现在要求一个稳定匹配,使得n对男女中,不存在男人对其他女人好感度大于配偶且女人对其他男人好感度大于配偶

思路:稳定婚姻问题,算法过程如下:
男人不断求婚,从最喜欢到最不喜欢,女人每次在求婚人中,选择一个最喜欢的配对,然后抛弃现在的配对,这个过程可以用一个队列存放求婚男人,这样直到队列为空,也就匹配完毕了

typedef long long ll;
const int N = 5007, M = 5000007, INF = 0x3f3f3f3f;

int n, m;
int future_wife[N], future_husband[N];
int pre[N][N], order[N][N], nex[N];
queue<int>q;
//男士是根据喜欢的程度从高到低去求婚请示,男士主动
//女士被动,只能从所有向她求婚的人中选择最喜欢的哪一位,比较惨,有可能选的是她最不喜欢的那一位。

void engage(int man, int woman)
{
   
    int los
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁凡さん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值