提起兩個人之間的匹配度,大家都知道,有人問兩個人容貌上匹配程度,另外,還有人想問匹配的圖的定義,你知道這是怎麼回事?其實如何測試兩個人的匹配度,下面就一起來看看兩個人容貌上匹配程度,希望能夠幫助到大家!
兩個人之間的匹配度
1、兩個人之間的匹配度:兩個人容貌上匹配程度
男才女貌,應該不是指外國妞般配的兩個人有什麼特征。
2、兩個人之間的匹配度:匹配的圖的定義
設有M個工人x1,x2,…,xm,和N項工作y1,y2,…,yn,規定每個工人至多做一項工作,而每項工作至多分配一名工人去做。由于種種原因,每個工人只能勝任其中的一項或幾項工作。問應怎樣分配才能使盡可能多的工人分配到他勝任的工作。這個問題稱為人員分配問題。為什麼感覺有些人很般配。
人員分配問題可以用圖的語言來表述。令X={x1,x2,…,xm},Y={y1,y2,…,yn},構造二分圖G=(X,Y,E)如下:兩個人很配是什麼意思。
對于1≤i≤m,1≤j≤n,當且僅當工人xi勝任工作yi時,G中有一條邊xiyi,于是人員分配問題就成為在G中求一個匹配的問題。測試兩人婚姻匹配度。
求匹配常用匈牙利算法,它的基本思想是:對于已知的匹配M,從X中的任一選定的M非飽和點出發,用標號法尋找M增廣鏈。如果找到M增廣鏈,則M就可以得到增廣;否則從X中另一個M非飽和點出發,繼續尋找M增廣鏈。重復這個過程直到G中不存在增廣鏈結束,此時的匹配就是G的匹配。這個算常稱為匈牙利算法,因為這里介紹的尋找增廣鏈的標號方法是由匈牙科學者Egerváry最早提出來的。測兩個人的戀愛匹配指數。
理解了這個算法,就不難寫出人員分配問題的解答了。在給出程序之前,先做一些假設:兩個人匹配的意思是什麼。
為了簡單起見,假設工人數等于工作數,即N=M,且N≤,這里,N也可以看作是二分圖的|X|和|Y|。測量情侶匹配度。
數據從文件input.txt中讀入,首先是N和|E|,下面|E|行每行兩個數(I,J),表示工人I可以勝任工作J,即二分圖中的邊xiyj。
結果輸出到文件output.txt,行是匹配數s,下面s行每行兩個數(I,J),表示分配工人I做工作J,即匹配邊xiyj。對于上面的人員分配問題,如果還考慮到工人做工的效率,就可以提出所謂的分派問題:應該怎樣分配才能使總的效率?看上去很般配的兩個人。
同上一節,我們可以構造一個二分圖G,如果把工人xi做工作yi的效率wij看作是G中邊xiyi的權,則分派問題就相當于在賦權二分圖G中求一個全匹配。
由線性規劃的知識,求二分圖G的權匹配,只需在匈牙利算法的基礎上少許改進即可。它的基本思想是,對二分圖的頂點編號,然后根據編號構造一個新的二分圖G’,把求G的權匹配轉換為求G’的完美匹配。情侶照片測匹配度。
下面的這條定理是這個算法的理論基礎。
定理:設M是賦權圖(權非負)的完全二分圖G=(V,E)的一個完美匹配,這里M是E的子集。如果M滿足:對G的任意一個完美匹配M’,均有M的邊權值之和大于M’邊的權值之和,則M是G的權匹配。兩個人很般配是什麼樣的。
下面,給出求權匹配的程序。輸入文件中首先是N和|E|,下面|E|行每行三個數(I,J,W),表示工人I做工作J的效率是W。程序輸出包括每個工人的選擇和的總效益。其它假設參見上一節的算法假設。這個算問題:FJOI-信封問題
John先生晚上寫了n封信,并相應地寫了n個信封將信裝好,準備寄出。但是,第二天John的兒子SmallJohn將這n封信都拿出了信封。不幸的是,SmallJohn無法將拿出的信正確地裝回信封中了。對象匹配度測試。
將SmallJohn所提供的n封信依次編號為1,2,…,n;且n個信封也依次編號為1,2,…,n。假定SmallJohn能提供一組信息:第i封信肯定不是裝在信封j中。請編程幫助SmallJohn,盡可能多地將信正確地裝回信封。其中n≤。測試兩人般配程度。
例如,有4封信,而且封信不是裝在信封1、2和3中,第2封信不是裝在信封2和3中,則可以確定的封信裝在信封4中,而且第二封信則裝在信封1中。但這些條件還不足以確定第三封和第四封信的位置。看了這道題目,感覺上和小學數學競賽中的邏輯推理題如出一轍,而邏輯推理題的一般是表上作業法。
就以前面的例子為例,根據條件,可以得到如下信息:
戀愛契合度測試姓名。
1×××別人說你倆挺配的是什麼意思。
2××表格1
由于每一行每一列都應該只有一個√,因此,可以確定封信裝在信封4中,于是可以得到:
1×××√戀愛匹配度測試免費。
2×××4×如何測試情侶匹配度。
然后,發現第二行有3個×,因此剩下一個肯定是√,于是就可以得出第二封信則裝在信封1中:夫妻相匹配度測試。
測名字看兩人配不配。
1×××√
2√×××
現在,第3行和第4行都只有兩個×,因此無法確定它們放在那個信封里。
這樣我們就得到了一個初步的算法:在程序中建立一個二維表格,首先,根據條件填入若干個×,然后,檢查所有還未確定的行和列,看有沒有一行(列)中有n–1個×,如果沒有,就結束;否則,把剩下的那一個空格填上√,并且填了√的那一行(列)的其它位置都填上×。
這種方法雖然很容易想到,但卻有針對這個方法的反例,例如:測試戀愛匹配度。
圖表3一個反例情侶匹配度測試免費。
圖中上半部分的頂點表示“信”,下半部分的頂點表示“信封”,如果信i可能放在信封j中,則在信i和信封j之間連一條邊。由于每個頂點的度數都大于或等于2,即每行每列都至少有兩個空位,故前面的算法無法進行任何推理,而事實卻并非如此,比如說中間的那封信就只能放在中間的那個信封里。測測我和他能否在一起。
正是這個反例,使我們需要另辟蹊徑。進一步分析可以發現,信和信封之間的關系,是一種一一對應的關系,這是因為一封信只能放到一個信封里,而一個信封也只能裝一封信。而從信息學的角度來看,這種一一對應的關系,也可以看作是二分圖的匹配關系。
令X={x1,x2,…,xm},Y={y1,y2,…,yn},構造二分圖G=(X,Y,E),當且僅當信i可以放到信封j中,G中存在邊xiyj。這樣,任何一種信的分案,都可以看作是圖G的一個完美匹配。例如上圖就有且僅有如下兩種完美匹配:
圖表4所有的完美匹配
由于中間的那條匹配邊在兩個完美匹配中都出現了,因此我們認為這條匹配邊是“確定的”,換句話說,這條邊所代表的關系也是確定的。容易看出,當且僅當對于G的所有完美匹配M,都存在一條匹配邊xiyj,則可以確定信i可以放到信封j中。
這樣,我們就從匹配的角度建立了一個新的模型。那麼,這個模型要如何求解呢?戀愛適配度計算。
我們當然不能枚舉出G所有的完美匹配,然后再去求它們邊的交集——這和搜索就沒什麼分別。在這里,我們需要對這個模型再做一個小小的轉換:我們發現,條件“對于G的所有完美匹配M,都存在一條匹配邊xiyj”,等價于“如果圖G存在完美匹配,而刪除圖G中的一條邊xiyj得到的圖G’中卻不存在完美匹配”。例如,左下圖刪除了一條“關鍵邊”,故不存在完美匹配,而右下圖刪除的是一條“非關鍵邊”,故存在完美匹配。什麼叫做匹配。
圖表5刪邊的例子
從表面上看,這個算法的時間復雜度似乎仍然很高。因為圖G中最多有n2條邊,每次試著刪除一條邊,又需要O(n3)的時間復雜度求一次完美匹配。總的復雜度高達O(n5)。查詢兩人的匹配度。
實際上,我們可以先找到圖G的一個完美匹配M,這樣,刪邊就只需考慮匹配邊了(因為刪除非匹配邊得到G’,M仍然是G’的完美匹配)。這樣,只需刪除n條邊,時間復雜度就降到了O(n4)。
再進一步分析,刪除一條邊以后,沒有必要重新找完美匹配,只需檢查可不可以找到新的增廣鏈就可以了。這樣,時間復雜度就進一步降到了O(n3)。問題:CTSC-丘比特的煩惱
隨著的不斷發展,人與人之間的感情越來越功利化。最近,愛神丘比特發現,愛情也已不再是完全純潔的了。這使得丘比特很是苦惱,他越來越難找到合適的男女,并向他們射去丘比特之箭。于是丘比特千里迢迢遠赴中國,找到了掌管東方人愛情的神——月下老人,向他求教。
月下老人告訴丘比特,純潔的愛情并不是不存在,而是他沒有找到。在東方,人們講究的是緣分。月下老人只要做一男一女兩個泥人,在他們之間連上一條紅線,那麼它們所代表的人就會相愛——無論他們身處何地。而丘比特的愛情之箭只能射中兩個距離相當近的人,選擇的范圍自然就小了很多,不能找到真正的有緣人。
丘比特聽了月下老人的解釋,茅塞頓開,回去之后用了人間的改造了自己的,使得丘比特之箭的射程大大增加。這樣,射中有緣人的機會也增加了不少。
情人節(Valentine’sday)的午夜零時,丘比特開始了自己的工作。他選擇了一組數目相等的男女,到他們互相之間的緣分大小,并依次箭,使他們產生愛意。他希望能選擇的方法,使被他選擇的每一個人被射中一次,且每一對被射中的人之間的緣分的和。
當然,無論丘比特怎麼改造自己的,總還是存在缺陷的。首先,的射程盡管增大了,但畢竟還是有限的,不能像月下老人那樣,做到“千里姻緣一線牽”。其次,無論怎麼改造,箭的軌跡終歸只能是一條直線,也就是說,如果兩個人之間的連線段上有別人,那麼莫不可向他們丘比特之箭,否則,按月下老人的話,就是“亂點鴛鴦譜”了。
作為一個凡人,你的任務是運用先進的計算機為丘比特找到的方案。
輸入文件行為正整數k,表示丘比特之箭的射程,第二行為正整數n(n<30),隨后有2n行,表示丘比特選中的人的信息,其中前n行為男子,后n行為女子。每個人的信息由兩部分組成:他的姓名和他的位置。姓名是長度小于20且僅包含字母的字串,忽略大小寫的區別,位置是由一對整數表示的坐標,它們之間用空格分隔。格式為Namexy。輸入文件剩下的部分描述了這些人的緣分。每一行的格式為。Name1和Name2為有緣人的姓名,p是他們之間的緣分值(p為小于等于的正整數)。以一個End作為文件結束標志。每兩個人之間的緣分至多只被描述一次。如果沒有被描述,則說明他們緣分值為1。
輸出文件僅一個正整數,表示每一對被射中的人之間的緣分的總和。這個和應當是的。題目中出現了三類物體和兩種關系,我們一個個的來分析:
丘比特的箭,它有一個屬性是射程,
男人和女人,他們的屬性包括名字和位置,
男人和女人之間的關系,這個關系是他們倆的緣分值,
箭與男女的關系,如果兩人的距離不超過箭的射程,并無他人阻擋,則可能被箭射中。題目就是要求一種射箭的方案,使得所有被射中的男女的緣分和。
這個問題很像是要求一個二分圖的權匹配。因為男人和女人分屬兩個,而且同性之間沒有任何關系,因此是一個二分圖。而把緣分值記做邊上的權,則緣分和,就對應了這個二分圖中的一個權匹配。
要注意的是,題目中雖然說明沒有被描述的男女之間緣分值為1,但這并不代表所得到的二分圖是完全二分圖。因為在構圖的過程中,我們必須還考慮到箭的射程等因素——如果兩人的距離超過了箭的射程,則他倆注定無緣了。
這時問題就來了,因為題目中除了要求緣分和之外,還要求“被丘比特選擇的每一個人都要被射中一次”。
你可能會覺得,要緣分和越大,當然被射中的人越多越好,其實并不是這樣。例如:
圖表6一個反例
如果要求權匹配,則會選擇匹配邊AD,緣分和為10。但由于每個人都要被射中一次,因此我們只能選擇AC和BD,緣分和為2。
換句話說,對于這個例子,正確答案應該是2,而權匹配的值卻是10。這說明,這道題目和簡單的權匹配還是有區別的,因為題目再要求權值的同時,還要求是一個完美匹配,我們稱之為“完美”的權匹配。
那麼,這道題是否就不能用權匹配來做了呢?先別急,我們再來回顧一下求權匹配的算法:我們通過對頂點編號,將圖G轉化為G’,然后在把求G的權匹配轉換為求G’的完美匹配——這里好像就是求完美匹配,但對于上面的那個例子,又為什麼不呢?
原來,對于上面的例子,在標號過后,新的圖G’中加入了一條新的邊BC,而這條邊的權值是0,在圖G’中的完美匹配,實際上是AD和BC,對應到圖G中,就是邊AD了。
因此,如果我們預先把BC的邊的權值設為-∞,再求圖中的權匹配,就不會再有問題了。
更一般的,如果要求二分圖的“完美”的權匹配,只需將原圖中沒有的邊的權值設為-∞,就可以了。問題:IPSC-Magic
一個的術師上臺表演,跟著他的是一位漂亮的女助手。術師先從他的術帽中拽出了幾只兔子,接著他又從女助手的圍巾中變出了一束鮮花,,他把女助手鎖在一個看上去空著的箱子里。然后,術師選了一個觀眾來配合一個表演:他在一個桌子上擺出N張牌(所有N張牌兩兩不同,且N為奇數)。術師讓這位自愿者走上講臺從中選出(N+1)/2張牌,其余的牌都在術師的帽子里永遠的消失了。術師在選出的牌上方晃了晃手,接著他選出其中一張交給那一位自愿者,自愿者向觀眾展示了手中的這張牌,隨后又將其在自己的衣袋里。那位女助手從箱子里放出來后,來到桌前也在剩下的(N+1)/2-1張牌上方晃了晃手,馬上就說出了自愿者衣袋中的是什麼牌。
這是為什麼呢?我們先看一下下面這張表,這是N=5的情況:
自愿者選的牌術師選的牌助手所看到的牌
1,2,2
1,2,4
1,2,5
1,3,3
1,3,5
1,4,5
2,3,3
2,3,5
2,4,4
3,4,4
其中,自愿者選的牌-術師選的牌=助手所看到的牌。表中包括了自愿者選牌的所有可能性,它們兩兩不同。而助手所看到的牌,也是兩兩不同的。
首先,術師和他的助手都要記住這張表。這樣,當助手看到的牌是2,4時,她就可以肯定自愿者選的牌是2,4,5,且術師選的牌就是5。
現在,告訴你n的值,要你求出這張表。其中n≤15。為了便于分析,我們令M表示從N張牌中選取(N+1)/2張牌的方案數,顯然,從這N張牌中選出(N+1)/2-1張牌的方案數也是M。
我們先從枚舉的角度入手,下面給出兩種枚舉的方法:
對于自愿者的每種選牌的方案,枚舉術師所選的牌。
如何測試兩個人的匹配度
對于自愿者的每種選牌的方案,所對應的助手看到的牌。
方案一需要M次決策,每次決策中有N種選擇;方案二同樣需要M次決策,而每次決策的可以有M種選擇。從這點上來看,方案一要好得多。、
可是方案一所表現出來的“自愿者的選牌的方案”和“術師所選的牌”之間的關系并不是一一對應的關系,對于自愿者不同的選牌的方案,術師可以選擇相同的牌。
而方案二中所表現出的關系正是一一對應的關系,因為題目要求對于自愿者不同的選牌的方案,助手看到的牌必須不同。
前面已經提到過,從信息學的角度來看,一一對應,也可以看作是一種二分圖的匹配的關系。因此,方案二更容易讓人聯系到匹配。
令X=自愿者的選牌的方案集,Y=助手看到的牌的,構造二分圖G=(X,Y,E),當且僅當時,G中存在邊xiyj。這樣,就把原問題轉換成求圖G的一個完美匹配。
下面問題又來了。首先,二分圖的頂點高達2M個,當N=15時,M接近,而求匹配的復雜度為O(M3),這樣高的復雜度,如何能夠承受?
注意到這個圖是一個稀疏圖,一共只有MN條邊。而稀疏二分圖匹配的復雜度也可以表示成O(|V|×|E|)。因此,時間復雜度應該是O(),基本上可以承受了。
另外,由于這是稀疏圖,我們用鄰接表來存儲,則空間復雜度僅為O(NM),同樣可以承受。
要說明的是,這道題目也可以用構造法以更好的效率,但不如匹配容易想到。具體的構造方法這里就不給出了,讀者可以自己想一想。問題:OOPC-神秘之山
M個人在追一只奇怪的小動物。眼看就要追到了,那小東西卻一溜煙躥上一座神秘的山。眾人抬頭望去那山看起來就是這個樣子:
圖表7樣例示意圖
那山由N+1條線段組成。各個端點從左到右編號為0…N+1,即x<x[i+1](0≤i≤n)。而且有y[0]=y[n+1]=0。
根據經驗來說那小東西極有可能在1…N中的某個端點。有趣的是大家很快發現了原來M恰好等于N,這樣,他們決定每人選一個點,看看它是否在躲那里。
一開始,他們都在山腳下,第i個人的位置是(s,0)。他們每人選擇一個中間點(x,0),先以速度w水平走到那里,再一口氣沿直線以速度c爬到他的目的地。由于他們的數學不好,他們只知道如何選擇一個的整數來作為中間點的橫坐標x。而且很明顯,路線的任何一個部分都不能在山的上方(他們又不會飛)。
他們不希望這次再失敗了,因此隊長決定要尋找一個方案,使得一個到達目的地的人盡量早點到。他們該怎麼做呢?
其中1≤N≤,0≤x,y,s≤,1≤c<w≤。行包含一個整數N。以下N+2行每行,包含兩個整數xi和yi,代表相應端點的坐標。以下N行每行包含3個整數:ci,wi和si,代表第i個人的爬山速度,行走速度和初始位置輸出一個人到達目的地的最早可能時間,四舍五入到小數點后兩位。
樣例輸入
樣例輸出
1.43
樣例說明
在這里例子中,個人先到(5.0)再爬到端點2;第二個人直接爬到端點3;第三個人先到(4.0)再爬到端點1。如下圖:
圖表8樣例的解答題目中的數據繁多復雜,我們先把他們提出來一個個分析:
人,共n個,與之有關的有初始橫坐標s,速度w和c
山頭,共n個,與之有關的有坐標x和y
根據這些信息,可以得到,人和山頭的關系:t[I,J],表示第i個人到達山頭j所需的最短時間。
題目中已經指明是一個人負責一個山頭,這顯然是一個一一對應的關系,因此,我們可以從二分圖的匹配的角度來考慮這個問題。
那麼,這道題目屬于哪一種匹配呢?是簡單的匹配,還是權匹配,或者是前面所提到的“完美”權匹配呢?
其實都不是。因為一般的權匹配,一個匹配的權的定義是該匹配中所有邊上權的和,而這道題目,一個匹配的權是指該匹配的邊上權值的值。題目要求這個值最小,我們暫且稱之為“最小匹配”。
直接求解似乎不太方便。換一個角度,如果我們給出一個時間,就可以用完美匹配的算法來判斷能否在這個時間內完成所有的工作。
具體的來說,對于給定的二分圖G和時間T,我們可以導出新的圖G’,G’中所有邊的權都不超過T。如果G’存在完美匹配,則所有工作可以在T時間內完成,否則則不能。
這樣,一個簡單的算法就誕生了:依次增加T,知道求出一個完美匹配為止。由于二分圖中的邊不會超過n2,因此T最多增加n2次,而每次增加T的值,需要O(n2)的時間來找增廣鏈,這樣總的時間復雜度就是O(n4)。
我們還可以采用二分查找的方法來尋找這個T,這樣的算法時間復雜度就可以降到為O()。
以上就是與兩個人容貌上匹配程度相關內容,是關于兩個人容貌上匹配程度的分享。看完兩個人之間的匹配度后,希望這對大家有所幫助!














