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

程序员有趣的面试智力题 偶然间在网上看到几个原来没见过的面试智力题,有几个题目在国内流传相当广,什么n个人怎么分饼最公平,屋里的三个灯泡分别由哪个开关控制,三架飞机环游世界,用火柴和两根绳子测量45分钟之类的题目,火星得已经可以考古了,这里就不再说了。      1、考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能 阅读详情

描述:有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;
		else
			r = mid;
	}
	printf("%.6lf\n", l);
	return 0;
}


【深度学习-番外1】Win10系统搭建VSCode+Anaconda+Pytorch+CUDA深度学习环境和框架全过程 本文将介绍在Windows 10系统下搭建深度学习环境的完整过程,包括安装Anaconda、CUDA、NVIDIA显卡驱动以及Pytorch框架。后续本专栏的Python语言下的深度学习环境都以本篇搭建的为准。 阅读详情

相关推荐

手把手教你搞定国民技术N32G031的Keil开发环境(附Pack包和JLink配置)

本文详细指导如何搭建国民技术N32G031的Keil开发环境,包括Keil MDK安装与激活、Pack包导入、JLink调试器配置等关键步骤。特别针对新手常见问题提供解决方案,帮助开发者快速上手N32G031系列MCU的开发工作。

cuangu9341的博客 419

MIO插件开发实战:从SDK原理到构建发布全流程

插件化架构是现代软件开发中实现功能扩展和模块复用的核心技术,其核心原理是通过定义标准接口和生命周期管理,实现功能模块的动态加载与卸载。这种架构模式为大型应用提供了极高的灵活性和可维护性,其技术价值在于能够实现热插拔、降低耦合度并支持生态共建。在Node.js生态中,基于事件驱动和非阻塞I/O模型,插件系统常与Web框架、构建工具等深度集成,应用于需要高可扩展性的场景,如企业级中间件、开发工具链和微服务治理平台。本文聚焦于mio框架的插件生态,深入解析其官方SDK如何通过“约定优于配置”的设计哲学,为开发者提

weixin_30882895的博客 819

量化交易 米筐 因子分组打分(成长因子)

分组动手练习 在米筐上因子数据没有处理,提供的很多因子没有默认分类,存在一些因子没有的情况,我们就选择一些常见的因子。 价值因子 质量因子 成长因子(历史名称) pe_ratio return_on_invested_capital in_revenue pcf_ratio du_return_on_equity inc_eps pb_ratio return_on_asset_net_profit inc_total_asset market_cap return_on_equ

廷益_飞鸟的博客 932

百度之星2012初赛第二场C, 网页聚类, 二分

没做完 现在贴个代码出来 不知道对不对 #ifdef _MSC_VER #define DEBUG #define _CRT_SECURE_NO_DEPRECATE #endif #include #include #include #include #include #include #include #include #include #include #i

Neo Fung的专栏 1942

芒果YOLOv12改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更高效,打造新型YOLOv8检测器,精度高效涨点

芒果YOLOv12改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更高效,打造新型YOLOv8检测器,精度高效涨点

包括YOLOv5、YOLOv7、YOLOv8等模型改进 343

SAP_PP模块中MRP中信号灯简介

一、信号灯的作用二、常见的信号灯颜色及含义三、信号灯的来源四、常见场景示例示例1:物料满足所有需求示例2:生产订单已延迟示例3:缺料或未产生计划订单五、相关事务码参考六、如何应对红色或黄色信号灯?七、前台操作说明在 SAP PP 模块中,**MRP(物料需求计划)运行结果中的“信号灯”是一种非常直观的可视化提示工具,用于帮助用户快速识别物料计划是否存在异常或需要关注的问题。这些信号灯通常出现在MD04(库存/需求清单)、MD05(单物料MRP清单)、MD07(MRP列表)**等事务代码的界面中。

我小时候很黑的博客 621

百度笔试题:malloc/free与new/delete的区别

相同点:都可用于申请动态内存和释放内存 不同点: (1)操作对象有所不同。 malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不

Hackbuteer1的专栏 7万+

【数字IC刷题】华为海思数字IC笔试题(1)详细解析版

【数字IC刷题】华为海思数字IC笔试题(1)详细解析版

MoorePlus的博客 4214

操作系统各大公司笔试题汇总

1、在段页式存储管理中,其虚拟地址空间是() A、一维                               B、二维                                C、三维                            D、层次 答案:B 2、采用( )不会产生内部碎片(“内零头”) A、分页式存储管理

Hackbuteer1的专栏 6万+

在Simulink中实现基于深度强化学习的控制算法仿真建模

通过上述步骤,你可以在Simulink中实现基于深度强化学习的控制算法仿真建模。这种方法适用于许多复杂的控制问题,尤其是当传统控制方法难以找到有效解决方案时。随着经验的积累,你可以进一步探索不同的深度强化学习算法及其变种,以适应更广泛的应用场景。此外,还可以结合其他先进技术(如迁移学习、多智能体协作等),提升模型的表现能力。

amy_mhd的博客 414

PhotovoltaicPanelCleanlinessDetector:基于YOLOv8的光伏板清洁状态监测系统

data.yamlyaml复制编辑names:0: clean1: dust3: leaves4: shadow✅ 高精度污染识别✅ 具备实时检测与UI展示✅ 可本地化部署应用未来方向增加污染程度分级(轻度、中度、严重)加入时间序列分析(污染变化趋势预测)无人机集成巡检模块。

YOLO 275

c++模板类学习

1、模板的概念 我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。 //函数1.

Hackbuteer1的专栏 5万+

2026年北京君正数字IC笔试试卷带答案

本文摘要:该文档是一份数字IC设计相关的考试试题,包含单选题、多选题、波形分析题和代码设计题。内容涵盖时序约束、半导体工艺、状态机设计、逻辑综合、异步FIFO设计等知识点。试题解析详细,重点考察数字电路基础、时序分析和Verilog代码实现能力。典型题目包括多周期路径设置、Moore/Mealy状态机区别、同步复位与异步复位特性、RISC-V架构特点等,并提供了异步FIFO的Verilog实现参考代码。(149字)

Open 112

char str[] 和 char *str 的区别

char* get_str(void) { char str[] = {"abcd"}; return str; }        char str[] = {"abcd"};定义了一个局部字符数组,尽管是数组,但它是一个局部变量,返回它的地址肯定是一个已经释放了的

Hackbuteer1的专栏 4万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

淘宝2011.9.21校园招聘会笔试题

一、单选题 1、我们有很多瓶无色的液体,其中有一瓶是毒药,其它都是蒸馏水,实验的小白鼠喝了以后会在5分钟后死亡,而喝到蒸馏水的小白鼠则一切正常。现在有5只小白鼠,请问一下,我们用这五只小白鼠,5分钟的时间,能够检测多少瓶液体的成分(C) A、5瓶

Hackbuteer1的专栏 3万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

亚信联创2011.9.17招聘会笔试题

1、对于如下程序: #include using namespace std; class A { public: A() { cout<<"A"<<endl; } }; int main(void) { A a[4], b,*p; } 会输出多少个A?(   C   ) A、2                   B、3

Hackbuteer1的专栏 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

getchar、scanf以及缓冲区的概念

1、getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了。       getch()和getche()是conio.h中的库函数,它的作用是从键盘接收字符,getchar带有回显。

Hackbuteer1的专栏 1万+

STL容器学习总结

本文主要讨论C++标准库中的顺序容器及相应的容器适配器,这些内容主要涉及顺序容器类型:vector、list、deque,顺序容器适配器类型:stack、queue、priority_queue。       标准库中的容器分为顺序容器和关联容器。顺序容器(sequential

Hackbuteer1的专栏 1万+

用高精度方法计算n! ,并显示n!(阶乘)的值。

【问题描述】  对于任意给定的n值(n为整数,且1 【样例】 输入:n= 10 输出: 3628800 又输入:n= 20 输出: 2432902008176640000 使用整型数组来存储大数类的每一位,并模拟手工乘法的全过程。。 #include "stdio.h" #include "stdlib.h" const unsigned int MAX = 10000;

Hackbuteer1的专栏 1万+

程序员面试100题之十一:数组循环移位

设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。      不合题意的解法如下:      我们先试验简单的办法,可以每次将数组中的元素右移一位,循环K次。abcd1234--->4abcd123--->34abcd12--->234abcd1--->1234abcd。代码如下所示: RightShift(int *arr, int N

Hackbuteer1的专栏 1万+

程序员面试100题之十五:数组分割

一、题目概述:有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。 假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。显然: S(k, 1) = {A[i] | 1 S(k, k) = {A[1]+A[2]+…+A[k]} S(k, i) = S(

Hackbuteer1的专栏 1万+

淘宝网 校园招聘 技术人员笔试题

通用试题部分: 选择题 1、在按层次遍历二叉树的算法中, 需要借助的辅组数据结构是 A、队列 B、栈 C、线性表 D、有序表 2、所谓指令周期是指 A、取指令和取操作数的时间 B、执行指令和存储操作结果的时间 C、取操作数和执行指令的时间 D、取指令和执行指

Hackbuteer1的专栏 1万+

浙江大华2011.10.10校园招聘会笔试题

请写出下面程序的输出结果:(答案在下面) 1、 int count = 3; int main(void) { int i, sum, count = 2; for(i=0,sum=0; i<count; i+=2,count++) { static int count = 4; count++; if(i%2 == 0) { extern int count;

Hackbuteer1的专栏 1万+

15个Google面试题以及答案~~~~你会几个?

1、 村子里有100对夫妻,其中每个丈夫都瞒着自己的妻子偷情。村里的每个妻子都能立即发现除自己丈夫之外的其他男人是否偷情,唯独不知道她自己的丈夫到底有没有偷情。村里的规矩不容忍通奸。任何一个妻子,一旦能证明自己的男人偷情,就必须当天把他杀死。村里的女人全都严格照此规矩办事。一天,

Hackbuteer1的专栏 1万+
上一篇: 【2012百度之星/初赛下】A:度度熊就是要刷排名第一
下一篇: 【2012百度之星/初赛下】C:度度熊的礼物
hackbuteer1
博客等级 码龄15年 1万+粉丝 251原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值