HDU 1435 簡單穩定婚姻問題

2021-07-11 11:27:17 字數 1669 閱讀 4623

題意:problem description

network 公司的boss 說現在他們公司建立的訊號發射站和接收站經常出現訊號傳送接收不穩定的問題,訊號的穩定度被定義為發射點到接收點的距離,距離越大,越不穩定,所以發射點跟接收點在可能的情況下應越近越好.

boss給8600的任務就是::建立乙個匹配表,使得乙個發射點對應乙個接收點,對於某乙個發射點來說,它的接收點離它越近那麼就會更穩定,同樣對於接收點也是一樣的情況. 匹配的目標是使得整個網路變得穩定。,對於某2個匹配,比如,( a ---- 1) ,(b----2) ,如果發射點a 離接收點2 比 1要近,而且2 也離 發射點a要比 b 近, 那麼 a 就很有可能把訊號發到 2中,我們就說這個搭配是不 穩定的。同樣如果發射點b 離接收點1 比 2 要近,而且1 也離 發射點b要比 a 近 ,也會出現不穩定的情 況. 而且每個點都有乙個容量值,如果對於乙個發射點到2個接收點的距離一樣的話,它將首先選擇容量大的那個. 所以8600就是要建立乙個穩定的匹配,使得每個乙個訊號發射點對應乙個接收點,並且不會出現訊號不穩定的情況.

8600苦思冥想也沒什麼進展,希望你能幫他解決這個難題.

input

輸入資料首先包含乙個正整數n,n<=20表示測試例項的個數.每個例項首先是乙個整c,c<=200表示有c個訊號發射點和c個訊號接收點. 接下來的c行表示 c個發射點的編號,容量和座標,座標為,x,y,z 3個實數(x,y,z ≥0).最後c行是c個接收點的編號,容量和座標.

output

輸出建立穩定搭配後各個發射點和接收點的編號,每一行代表乙個搭配,前乙個整數為發射點的編號,後乙個為對應的接收點的編號。如果有多種情況,輸出其中一種即可.如果任務不可能完成的話,輸出"impossible".每個例項後請輸出乙個空行.

想法:這是乙個穩定婚姻問題,穩定婚姻問題就是n個男的和n個女的結婚,然後目的是為了讓婚姻關係更穩定,在每乙個男人的心中有乙個排列:n個女人在自己心中的喜愛程度。每乙個女人心中對每乙個男人都有乙個評分。例如a-b,c-d是兩對夫妻,但是a更喜歡d多一點與此同時c又更滿意b,那麼顯然會有人出軌,這樣就是不穩定的關係,現在尋求一種方法使得婚姻關係變得穩定,這就需要用到一種方法:男生詢問女生,女生比較男生。具體一點來說就是,在男生的心裡有乙個女生的排名,那麼男生按照這個排名去尋找女生,那麼如果這個女生沒有匹配任何男生,那麼這個女的就會和這個男的在一起,如果這個女生已經匹配到了男生,那麼就需要將這個男生和已經和女生匹配的那個男生進行比較看看女生更喜歡誰,如果原來的男生被淘汰了,那麼直接扔回佇列即可,其實這種方式找下來是對男生有利的,因為男生找到的女的都是合理情況下最喜歡的女生。

#include#include#include#include#include#includeusing namespace std;

const int n=200+5;

int b_g[n][n],g_b_score[n][n];

int bg[n],gb[n];

bool mark[n][n];

int n;

struct node

node1[n],node2[n];

struct nodee

fz[n];

bool cmp(nodee a,nodee b)

int head,nxt;

while(!q.empty())

else if(g_b_score[nxt][gb[nxt]]



穩定婚姻問題

穩定婚姻是組合數學裡面的乙個問題。問題大概是這樣 有乙個社團裡有n個女生和n個男生,每位女生按照她的偏愛程度將男生排序,同時每位男生也按照自己的偏愛程度將女生排序。然後將這n個女生和n個男生配成完備婚姻。如果存在兩位女生a和b,兩位男生a和b,使得a和a結婚,b和b結婚,但是a更偏愛b而不是a,b更...

穩定婚姻問題

著名的穩定婚姻問題是美國數學家 經濟學家lloyd stowell shapley 1923 提出的。下面介紹一下背景 某單位有n個姑娘w1,w2,wn和n個小伙m1,m2 mn。每位姑娘對所有小伙有乙個滿意度排序,每位小伙對所有姑娘也有一滿意度排序。m1 w2 w1 w3 w1 m1 m3 m2 ...

穩定婚姻問題模板

題目鏈結 這題寫的一把辛酸淚,第一次用getchar 讀入,再加上很少用scanf 讀入字元,被輸入輸出緩衝安排的明明白白,最後放棄 用cin,還是死活沒有輸出,最後才發現是因為for迴圈多加了一步,白被坑了有一天。演算法分析 首先把每個男士加入佇列,讓每乙個沒配對的男士去向女士請求配對,如果女士沒...