首页 > 其他分享 >2023年天梯赛选拔-部落划分

2023年天梯赛选拔-部落划分

时间:2023-04-03 21:00:49浏览次数:62  
标签:二分 return 答案 int double 选拔 mid 天梯 2023

题目链接:https://www.luogu.com.cn/problem/P4047

感受:比赛时秒认为是二分,但二分的细节很多且不好处理,但我就是要二分。

主要死在对并查集还不够熟悉,本题二分判断有几个部落只能通过并查集来实现,普通的模拟无法实现。

思路:对答案进行二分,当算出来的联通的数目大于题目给定的,说明二分的答案偏小。反之答案偏大。

这里说一下当两点间的距离与二分的答案相等的情况,如本题样例,当二分答案为0.9999时,联通块数目是4,当二分答案为1时,连通块数目是1,并没有二分到k,我们只需要去掉二分答案为1时的边的长度为1的边,这样联通块的数目就与题目给定的相等了。

代码

#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
typedef pair<int,int>P;
int p[N];
P edge[N];
int n,k;
int find(int x){
    if (x!=p[x]) p[x] = find(p[x]);
    return p[x];
}
double get(int x1,int y1,int x2,int y2){
	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
bool check(double mid){
	int cnt = 0;
	for (int i=1;i<=n;i++) p[i] = i;
	for (int i=1;i<=n;i++){
	    for (int j=i+1;j<=n;j++){
	        double d = get(edge[i].first,edge[i].second,edge[j].first,edge[j].second);
	        if (d<=mid){
	            int X = find(i),Y = find(j);
	            p[X] = Y;
	        }
	    }
	}
	for (int i=1;i<=n;i++){
	    if (p[i]==i) cnt++;
	}
	if (cnt>=k)  return 1;
	return 0;
}
int main(){
	cin>>n>>k;
	for (int i=1;i<=n;i++) cin>>edge[i].first>>edge[i].second;
	double l = 0,r = 20000;
	while(r-l>1e-9){
		double mid = (l+r)/2;
		if (check(mid)) l = mid;
		else r = mid;
	}
	printf("%.2f",l);
	return 0;
}

标签:二分,return,答案,int,double,选拔,mid,天梯,2023
From: https://www.cnblogs.com/xjwrr/p/17284414.html

相关文章

  • picoctf2023
    ForensicsFIndAndOpen一个流量包和一个flagzip。流量包里面看到半截flag。base解码可以看到。然后用这半截作为密码打开zip。。。。。(这我是真sb,想不到PcapPosoning直接搜索hideme分离出图片中的压缩包就能看到MSB根据题目名字,一眼顶针。stegsolve提取出msb下的7bi......
  • NOIST2023 + HEOI2023 游记
    好像是被打破防了。春季赛春季赛忘的差不多了,但是总而言之打假赛。day0去的是叫英庄李家的酒店,下午去看海了。手机在看到海并拍摄一张照片后残忍关机了。......
  • 联合省选2023HE退役记
    本人思维混乱,闲言碎语几句,可能根本读不了算是记录一些引子吧,将来打开说不定能回想起现在的感受longlongago好久没有写游记了啊。。那就连着今年的一块说吧3月的春季赛,打得很稳,前三题相对而言比较水,所以稳健?的打到340,还算不错。拿到了一点微不足道的优势?信心++之后就是武......
  • 联合游记2023
    省选还是结束了。貌似这是我第一次写游记(?)。毕竟这次不写就没机会了。Day02023.3.31,出发去秦皇岛。路上显然是要打游戏。上来,打开某iwanna。我:先通了这一面再考虑去打别的游戏。\(An\hour\later...\)(砸电脑的声音)行了我去打永夜抄了。说着,我打开了pvz。然后就被......
  • 元旦快乐 | 2023,你好,我是7DGroup
    你好,我是   7DGroup2023.01.01元旦快乐HappyNewYear2023如期而至!7DGroup全体伙伴祝大家元旦快乐!!满怀期待,开启你的2023!......
  • 智安网络|2023年网络安全未来的发展趋势
    随着“云大物移智”技术的不断成熟,互联网与物联网技术的不断融合,未来将有越来越多的物联网设备接入互联网,物联网产业将在中国蓬勃发展。目前,我国已出台了大量政策法规,引导和规范我国物联网产业的发展,并鼓励企业加大研发力度,努力将我国物联网产业发展成为全球领先的高科技产业。为了......
  • C语言酒水批发管理系统[2023-04-03]
    C语言酒水批发管理系统[2023-04-03]编写一个C语言程序,实现一个酒水批发管理系统,至少能够管理30条进货/批发销售记录。其中:管理系统所管理物品仅包括各种不同品牌的酒水类货物货物信息主要包括:货物名称、货物编号、货物库存数、货物属性(不同包装、是否促销)等;进货记录主......
  • 2023_3_19正则表达式
    (1)? 通配符匹配文件名中的0个或1个字符。而 * 通配符匹配零个或多个字符。^ 为匹配输入字符串的开始位置。[0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。(2)地图接口:百度地图接口......
  • 《渗透测试》信息打点-APP资产&知识产权&应用监控&静态提取&动态抓包&动态调试 2023 D
     案例1:名称获取APP信息(爱企查/小蓝本/七麦/点点)1、爱企查知识产权2、七麦&点点查名称https://www.xiaolanben.com/https://aiqicha.baidu.com/https://www.qimai.cn/https://app.diandian.com/ 案例2:URL网站备案查APP1、查备案信息在搜2、网站上有APP下载3、市场......
  • 《渗透测试》信息打点-小程序应用&解包反编译&动态调试&抓包&静态分析&源码架构 2023
     #小程序获取-各大平台&关键字搜索-微信-百度-支付宝-抖音头条 #小程序体验-凡科建站&模版测试上线测试:https://qz.fkw.com/参考:https://blog.csdn.net/qq_52445443/article/details/1223518651.主体结构小程序包含一个描述整体程序的app和多个描述各自页面的pa......