Stable Match
稳定婚姻问题
主要就是处理两个数组
boy[i][j] 存放第i个男的第j喜欢的女的 存的是女的编号!!
girl[i][j] 存放 第i个女的对第j个男的的好感度 存的是值
然后只要模板就行了
这题的数据处理有点麻烦 多学习!
#include<bits/stdc++.h>
using namespace std;
#define N 1000
int rank1[N];
int match_boy[N],match_girl[N];
double boy[N][N],girl[N][N];
int n; struct node
{
int cap,idx;
double x,y,z;
}lau[N],acc[N]; struct ode
{
int idx,cap;
double len;
}aim[N]; bool cmp(ode a,ode b)
{
if( fabs(a.len-b.len)<0.000001 )return a.cap>b.cap;
else return a.len<b.len;
} int main()
{
int cas;cin>>cas;
while(cas--)
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d %d %lf %lf %lf",&lau[i].idx,&lau[i].cap,&lau[i].x,&lau[i].y,&lau[i].z);
for(int i=;i<=n;i++)
scanf("%d %d %lf %lf %lf",&acc[i].idx,&acc[i].cap,&acc[i].x,&acc[i].y,&acc[i].z); for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
aim[j].len = sqrt((lau[i].x-acc[j].x)*(lau[i].x-acc[j].x) + (lau[i].y-acc[j].y)*(lau[i].y-acc[j].y) + (lau[i].z-acc[j].z)*(lau[i].z-acc[j].z));
aim[j].cap = acc[j].cap;
aim[j].idx = acc[j].idx;
} sort(aim+,aim++n,cmp);//求第i个男的对所有的女的好感排序 for(int j=;j<=n;j++)
boy[i][j]=aim[j].idx;//放置第i个男的第j喜欢的女的是谁! } for(int i=;i<=n;i++)
{ for(int j=;j<=n;j++)
{
aim[j].len = sqrt((acc[i].x-lau[j].x)*(acc[i].x-lau[j].x) + (acc[i].y-lau[j].y)*(acc[i].y-lau[j].y) + (acc[i].z-lau[j].z)*(acc[i].z-lau[j].z));
aim[j].cap = lau[j].cap;
aim[j].idx = lau[j].idx;
}
sort(aim+,aim++n,cmp);
for(int j=;j<=n;j++)
girl[ acc[i].idx ][ aim[j].idx ]=n-j;//放置第i个女的对第j个男的的好感度! 不需要放len 直接n-j就行
} //处理好boy和girl数组 其他的完全一样! int flag=;
memset(match_boy,,sizeof match_boy);
memset(match_girl,,sizeof match_girl);
memset(rank1,,sizeof rank1); while(flag)
{
flag=;
for(int i=;i<=n;i++)
{
if(!match_boy[i])
{
int temp=boy[i][rank1[i]++];
if(!match_girl[temp])
match_boy[i]=temp,match_girl[temp]=i;
else if( girl[temp][i]>girl[temp][match_girl[temp]] )
{
match_boy[ match_girl[temp] ]=;
match_boy[i]=temp;
match_girl[temp]=i;
}
flag=;
}
}
} for(int i=;i<=n;i++)
cout<<i<<' '<<match_boy[i]<<endl;
cout<<endl;
}
return ;
}
Stable Match的更多相关文章
- 【稳定婚姻问题】【HDU1435】【Stable Match】
2015/7/1 19:48 题意:给一个带权二分图 求稳定匹配 稳定的意义是对于某2个匹配,比如,( a ---- 1) ,(b----2) , 如果 (a,2)<(a,1) 且(2,a)& ...
- HDU 1435 Stable Match 【稳定婚姻问题】
<题目链接> 题目大意:给你n个发射站和n个接受站的位置,并且给出他们的容量,现在需要你对这n对站台进行匹配,距离越近的站台越稳定,如果两个站台距离相等,容量越大的越稳定.问你稳定匹配是什 ...
- hdoj1435 Stable Match(稳定婚姻问题)
简单稳定婚姻问题. 题目描述不够全面,当距离相同时容量大的优先选择. 稳定婚姻问题不存在无解情况. #include<iostream> #include<cstring> # ...
- Stable Matching (Gale Sharpley Algorithm)
稳定婚配问题:n个男生n个女生.当中每一个人都有自己心仪的列表. 问怎样达成稳定的匹配(比方, b想B求婚,可是B已有的对象的优先级高于b,此时b的魅力不足以拆散B所处的那一对,即达到稳定状态.) ( ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- 【HDOJ图论题集】【转】
=============================以下是最小生成树+并查集====================================== [HDU] How Many Table ...
- hdu图论题目分类
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- 最大团&稳定婚姻系列
[HDU] 1530 Maximum Clique 1435 Stable Match 3585 maximum shortest distance 二分+最大团 1522 Marriage is ...
- HDU图论题单
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
随机推荐
- HGOI20181031 模拟题解
sol:第一题就DP?!然后写了O(n^2) dp再考虑优化!!!(尽量部分分带上!!!) 我写了正确的dp然后优化错了,具体的dp方法是考虑到对于右侧到左侧他是没有后效性的 所以定义f[i]为i及以 ...
- HGOI20180812 (NOIP2018 提高组 Day1 模拟试题)
前缀数组其实就是有序的,那么答案显然是 我们尝试求出通项公式: 证明如下: 因为 所以: 解之得: 更加通俗的写法如下: 易知 令 那么, (错位相减) 由易知等式代入得, 所以, 所以程 ...
- 如何整合Office Web Apps至自己开发的系统(二)
WOPI项目的创建 首先用vs2012创建一个mvc4的程序.如图: 从上一篇我们可以知道,WOPI通讯主要通过两个服务: 一个是CheckFileInfo服务, 一个是GetFile服务. 所以下面 ...
- Spring Boot整合MyBatis(使用Spring Tool Suite工具)
1. 创建Spring Boot项目 通过Spring Tool Suite的Spring Starter Project对话框,其实是把项目生成的工作委托http://start.spring.io ...
- java绘图合并图像AlphaComposite模式测试
package com.hdwang.test; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.sw ...
- 【洛谷P1087】FBI树
题目大意:后序遍历 题解:建立二叉树的码风不知道怎么突然跟线段树一样了...当然,这道题不建树也是可以的. 代码如下 #include <bits/stdc++.h> using name ...
- phpstorm 配置 webpack @ 别名跳转
webstorm中专门有webpack的相关配置,默认的路径直接是项目根目录下的 webpack.config.js,但是我们用各种cli生成的项目中,webpack的配置一般都是在build下,导致 ...
- 20145215《网络对抗》Exp2 后门原理与实践
20145215<网络对抗>Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 在网上下载软件的时候,后门很有可能被捆绑在下载的软件当中: 浏览网页的 ...
- Kafka 0.8 如何创建topic
1. 操作命令 bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions ...
- keepalived 配置文件参数详解
global_defs 全局配置vrrpd 1. vrrp_script添加一个周期性执行的脚本.脚本的退出状态码会被调用它的所有的VRRP Instance记录. 2. vrrp_sync_grou ...