描述:有N(N2+ (y_j-y_i)2 + (z_j-z_i)2。请求出最大的t,使得N个网页可以聚成K类,其中每个类至少包含一个网页,且任意两个位于不同类中网页的相似度都至少为t。

输入

第一行包含两个整数N和K,后面N行每行三列,分别为x、y、z。

输出

最大的t的值,使用四舍五入在小数点后保留六位小数。

样例输入

5 3

0.1 0.2 0.4

0.2 0.8 0.7

0.3 0.4 0.5

0.0 0.5 0.0

0.3 0.3 0.2

样例输出

0.170000

#include<iostream>
#include<cstdio>
#include<queue>
#include<vector>
using namespace std; const int MAXN = 2010;
const double EPS = 1e-8;double x[MAXN], y[MAXN], z[MAXN], d[MAXN][MAXN];
bool vis[MAXN];
int n, k, cnt, belong[MAXN];
queue <int> q;
vector <int> e[MAXN];
vector <int> :: iterator iter; double dist(int i, int j)
{return (x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]) + (z[i] - z[j]) * (z[i] - z[j]);
}
void bfs(int p)
{memset(vis , 0 , sizeof(vis));q.push(p);while (!q.empty()){int u = q.front();q.pop();belong[u] = cnt, vis[u] = true;for(iter = e[u].begin(); iter != e[u].end(); ++iter){if (!vis[*iter])q.push(*iter);}}
}
bool check(double t)
{int i, j;for (i = 0; i < n; ++i){e[i].clear();for (j = 0; j < n; ++j){if (d[i][j] < t && i != j){e[i].push_back(j);}}}cnt = 0;for (i = 0; i < n; ++i){if (!belong[i]){cnt++;bfs(i);}}return cnt >= k;
}
int main(void)
{int i, j;scanf("%d %d", &n, &k);for (i = 0; i < n; ++i){scanf("%lf %lf %lf", &x[i], &y[i], &z[i]);}for (i = 0; i < n; ++i){for (j = 0; j < n; ++j){d[i][j] = dist(i, j);}}double l = 0, r = 3;while (r - l > EPS){memset(belong , 0 , sizeof(belong));double mid = (l + r) / 2;if( check(mid) )l = mid;elser = mid;}printf("%.6lf\n", l);return 0;
}

【2012百度之星/初赛下】B:网页聚类相关推荐

  1. 【2012百度之星/初赛下】C:度度熊的礼物

    描述:度度熊拥有一个自己的Baidu空间,度度熊时不时会给空间朋友赠送礼物,以增加度度熊与朋友之间的友谊值.度度熊在偶然的机会下得到了两种超级礼物,于是决定给每位朋友赠送一件超级礼物.不同类型的朋友在 ...

  2. 【2012百度之星/初赛下】A:度度熊就是要刷排名第一

    描述:一天度度熊在Baidu游戏大厅中发现了一个隐藏的神奇游戏,叫做"度度熊的逆袭".度度熊很好奇到底是什么情况,于是就进入了游戏.这个游戏很神奇,游戏会给出n个数Ai,度度熊可以 ...

  3. 【2012百度之星/初赛上】B:小小度刷礼品

    描述:一年一度的百度之星又开始了,这次参赛人数创下了吉尼斯世界纪录,于是百度之星决定奖励一部分人:所有资格赛提交ID以x结尾的参赛选手将得到精美礼品一份. 小小度同学非常想得到这份礼品,于是他就连续狂 ...

  4. 【2012百度之星/初赛上】D:轮子上的度度熊

    描述:百度楼下有一块很大很大的广场.广场上有很多轮滑爱好者,每天轮滑爱好者们都会在广场上做一种叫做平地花式轮滑的表演.度度熊也想像他们一样在轮上飞舞,所以也天天和他们练习. 因为度度熊的天赋,一下就学 ...

  5. 【2012百度之星/初赛上】A:度度熊就是要第一个出场

    描述:Baidu年会安排了一场时装秀节目.N名员工将依次身穿盛装上台表演.表演的顺序是通过一种"画线"抽签的方式决定的. 首先,员工们在一张白纸上画下N条平行的竖线.在竖线的上方从 ...

  6. 【2012百度之星/初赛上】C:集合的交与并

    对于一个闭区间集合{A1,A2--AK}(K>1,Ai≠Aj{i≠j}),我们定义其权值 其中|X|表示X区间的长度:如果X为空集|X|=0. 当然,如果这些闭区间没有交集则权值为0. 给定N个 ...

  7. 2016百度之星 - 初赛(Astar Round2B)解题报告

    此文章可以使用目录功能哟↑(点击上方[+]) 被自己蠢哭,去年还能进一下复赛,今年复赛都没戏了... 链接→2016"百度之星" - 初赛(Astar Round2B)  Prob ...

  8. 2012百度之星冬季赛第二场第二题 消去游戏I

    2012百度之星冬季赛第二场第二题 消去游戏I 题目: Alice和Bob又开始发明新游戏了,这回的名字叫消去游戏. 消去游戏的道具是一堆排成一行的积木,每个积木上面都有一个数字Ai.同时游戏也需要M ...

  9. 2016百度之星 - 初赛(Astar Round2A)解题报告

    此文章可以使用目录功能哟↑(点击上方[+]) 有点智商捉急,第一题卡了好久,看来不服老,不服笨是不行的了...以下是本人目前的题解,有什么疑问欢迎提出 链接→2016"百度之星" ...

最新文章

  1. R Learnilng 十八讲1-6
  2. matlab2c使用c++实现matlab函数系列教程-range函数
  3. HTML+CSS网页制作——恒德电子
  4. winform打印服务器上的pdf文件,c# winform 静默打印 PDF文件
  5. 跨境电商erp管理系统
  6. java 事务级别_java事务隔离级别
  7. 马化腾:创建生物型组织,让企业组织自我进化
  8. 感动!有人将吴恩达的视频课程做成了文字版
  9. linux 分区 intel raid,linux on intel sata raid
  10. Android实现一键开启自由窗口、分屏、画中画模式——画中画模式
  11. macOS系统怎么本地运行php文件
  12. 离婚时,住房公积金分割吗?
  13. 社会神经网络有哪些,神经网络的神经网络
  14. 【图像处理】图像锐化的工作原理和算法实现(matlab实现)
  15. 速围观!上千款“AI黑科技”在此集结
  16. 工具 UltraISO
  17. 关于红杏的公益代理, Android Studio以及freso的编译
  18. 电气化铁路变电站自动化安全监控传输方案
  19. Cornerstone 破解版
  20. 幽默感七个技巧_提升幽默感的3种方法

热门文章

  1. android多语言编码格式,在Android中使用国家/地区代码以编程方式更改语言
  2. 最新发布!《阿里云实时计算 Flink 版解决方案白皮书-2021版》开放下载
  3. 【邀请函】2021钉钉宜搭·线上沙龙,邀您云上相见!
  4. 国内唯一,阿里云挺进 Forrester 数据流分析报告“强劲表现者”象限
  5. 【国内首家!】阿里云专有云通过商用密码应用安全性评估
  6. 马云启动“NASA”计划 为未来20年愿景研发核心科技
  7. 程序员数学基础【四、取模应用-判断奇偶数、判断素数、求两个数的最大公约数、水仙花数】(Python版本)
  8. 使用Anemometer基于pt-query-digest将MySQL慢查询可视化
  9. 远程桌面无法复制文本时解决办法
  10. Oracle Recyclebin