1.uva1175 ladies' choice
最簡單的板子,直接上**,抄的大劉的
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
#define ull unsigned long long
#define pii pair#define uint unsigned int
#define mii map#define lbd lower_bound
#define ubd upper_bound
#define inf 0x3f3f3f3f
#define iinf 0x3f3f3f3f3f3f3f3fll
#define def 0x8f8f8f8f
#define ddef 0x8f8f8f8f8f8f8f8fll
#define vi vector#define ll long long
#define mp make_pair
#define pb push_back
#define re register
#define il inline
#define n 1000
int pref[n+5][n+5], order[n+5][n+5], nxt[n+5];
int futurehusband[n+5], futurewife[n+5];
queueq;
void engage(int man, int woman)
futurewife[man] = woman;
futurehusband[woman] = man;
}int main()
for(int i = 1; i <= n; ++i)
futurehusband[i] = 0;
}while(!q.empty())
while(!q.empty()) q.pop();
for(int i = 1; i <= n; ++i) printf("%d\n", futurewife[i]);
if(t) printf("\n");
} return 0;
}
2.矩陣變換
不知道是怎麼發現的乙個性質
對於一行,它更喜歡這一行靠前的數
對於乙個數,它更喜歡它的位置靠後的行
然後就轉化為乙個穩定婚姻問題了
關於上面的那條性質,這是乙個例子:
0 1 0 2
1 0 2 0
行\(1\)喜歡的數的順序:\(1\ 2\)
行\(2\)喜歡的數的順序:\(1\ 2\)
數\(1\)對於行的喜歡順序:\(1\ 2\)
數\(2\)對於行的喜歡順序:\(1\ 2\)
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
#define ull unsigned long long
#define pii pair#define uint unsigned int
#define mii map#define lbd lower_bound
#define ubd upper_bound
#define inf 0x3f3f3f3f
#define iinf 0x3f3f3f3f3f3f3f3fll
#define def 0x8f8f8f8f
#define ddef 0x8f8f8f8f8f8f8f8fll
#define vi vector#define ll long long
#define mp make_pair
#define pb push_back
#define re register
#define il inline
#define n 200
#define m 200
int n, m;
int matchx[n+5], matchy[n+5], a[n+5][2*n+5];
int pref[n+5][n+5], order[n+5][n+5], nxt[n+5], head[n+5];
queueq;
void engage(int man, int woman)
matchx[man] = woman;
matchy[woman] = man;
}int main()
q.push(i);
} for(int j = m; j >= 1; --j)
for(int i = 1; i <= n; ++i)
if(a[i][j]) order[a[i][j]][i] = ++head[a[i][j]];
while(!q.empty())
for(int i = 1; i <= n; ++i) printf("%d ", matchx[i]);
printf("\n");
} return 0;
}
穩定婚姻問題
穩定婚姻是組合數學裡面的乙個問題。問題大概是這樣 有乙個社團裡有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迴圈多加了一步,白被坑了有一天。演算法分析 首先把每個男士加入佇列,讓每乙個沒配對的男士去向女士請求配對,如果女士沒...