简单稳定婚姻问题。
题目描述不够全面,当距离相同时容量大的优先选择。
稳定婚姻问题不存在无解情况。
1 #include2 #include 3 #include 4 #include 5 #include 6 #define maxn 205 7 using namespace std; 8 struct point{ 9 int num,v;10 double x,y,z;11 }Man_array[maxn],Woman_array[maxn];12 struct point2{13 int num,v;14 double dis;15 }A[maxn*maxn];16 int n;17 int nowb[maxn],nowg[maxn],V[maxn][maxn],B_g[maxn][maxn],G_b[maxn][maxn];18 double calc(point p,point q){19 double xx=p.x-q.x,yy=p.y-q.y,zz=p.z-q.z;20 return sqrt(xx*xx+yy*yy+zz*zz);21 }22 int comp(point2 p,point2 q){23 return p.dis q.v;24 }25 void Stable_Marriage(){26 memset(V,0,sizeof(V));memset(nowb,-1,sizeof(nowb));memset(nowg,-1,sizeof(nowg));27 queue Q;28 for (int i=0;i > t;55 while (t--){56 cin >> n;57 for (int i=0;i > Man_array[i].num >> Man_array[i].v >> Man_array[i].x >> Man_array[i].y >> Man_array[i].z;59 }60 for (int i=0;i > Woman_array[i].num >> Woman_array[i].v >> Woman_array[i].x >> Woman_array[i].y >> Woman_array[i].z;62 }63 //男——女 64 for (int i=0;i