HDU - 3622 - Bomb Game - ( 2-sat + 二分 )

2025小红书跳转卡片实战指南:从零搭建独立后台与自动化发卡系统 本文提供了一份2025年小红书跳转卡片的实战搭建指南,详细解析了独立后台系统的核心架构与自动化发卡流程。文章从零开始,手把手教你使用Node.js、Vue.js等技术栈构建包含后台管理、用户制卡中心与前端交互的完整系统,旨在帮助运营者实现合规引流,并掌握数据自主权与自动化运营能力。 阅读详情
题目链接:点击进入
题目

在这里插入图片描述

题意

n组,每组2个炸弹的坐标,每一组选且只选一个炸弹,每个炸弹的爆炸半径相同,求出最大的爆炸范围半径。(不能存在有炸弹重复炸到的地方)

思路

二分求最大半径,用2-sat检查是否存在合理的答案,如果两个点(不是同一对的)的距离小于2*r(我用的是两边平方),那么说明两圆相交,有冲突,那么就连边到它们各自取反的点,剩下的就是常规的2-sat

代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<stack>
#include<map>
#include<algorithm>
using namespace std;
const int maxn=1e3+10;
const double eps=1e-7;
stack<int>s;
int t,n,m,cnt,tot,flag,ant;
int dfn[maxn],low[maxn],belong[maxn],head[maxn];
int x[maxn],y[maxn];
bool vis[maxn];
double dis[310][310];
struct node
{
	int to;
	int next;
}edge[100010];
void init()
{
	memset(head,-1,sizeof(head));
	memset(vis,0,sizeof(vis));
    memset(dfn,0,sizeof(dfn));
    //memset(low,0,sizeof(low));
   // memset(belong,0,sizeof(belong));
    cnt=tot=ant=0;
    while(!s.empty())
        s.pop();
}
void add(int u,int v)
{
	edge[ant].to=v;
	edge[ant].next=head[u];
	head[u]=ant++;
}
void tarjan(int pos)
{
    dfn[pos]=low[pos]=++cnt;
    s.push(pos);
    vis[pos]=1;
    for(int i=head[pos];i!=-1;i=edge[i].next)
    {
        int v=edge[i].to;
        if(!dfn[v])
        {
            tarjan(v);
            low[pos]=min(low[pos],low[v]);
        }
        else if(vis[v]==1)
            low[pos]=min(low[pos],dfn[v]);
    }
    if(low[pos]==dfn[pos])
    {
    	int v;tot++;
    	do{
    		v=s.top();
    		s.pop();
    		vis[v]=0;
    		belong[v]=tot;
		}while(pos!=v);
    }
}
double dist(int i,int j)
{
    return (x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
}
bool check(double r)
{
	init();
	double tmp=r*r*4;
	for(int i=0;i<n<<1;i++)
	{
		for(int j=0;j<i;j++)
		{
			if(dist(i,j)<tmp)
				add(i,j^1),add(j,i^1);
		}
	}
	for(int i=0;i<n<<1;i++)
        if(dfn[i]==0)
            tarjan(i);
    for(int i=0;i<n;i++)
        if(belong[i<<1]==belong[i<<1|1])
            return 0;
    return 1;
}
int main()
{
//	ios::sync_with_stdio(false);
	while(~scanf("%d",&n))
	{
		double ans=0.0;
		for(int i=0;i<n;i++)
			scanf("%d%d%d%d",&x[i<<1],&y[i<<1],&x[i<<1|1],&y[i<<1|1]);
		double l=0,r=1e9,mid;
        while(r-l>eps)
        {
            mid=(l+r)/2;
            if(check(mid))
                l=mid,ans=mid;
            else
                r=mid;
        }
        printf("%.2lf\n",ans);
	}
    return 0;
}
PCIe协议之 Equalization篇 之 谈谈几种模式 对于两端有能力最高支持 32 GT/s 及以上速率的设备,如果把目标速度设置为 8 GT/s 或 16 GT/s 速率,是不建议采用 Bypass-Equalization-to-Highest-Rate 模式的,即便采用了,也不会针对 8 GT/s 或 16 GT/s 的目标速率进行 EQ。对于支持 32 GT/s 及以上速率的设备,其可能根本无需工作在 8 GT/s 或 16 GT/s 速率,这时再针对 8 GT/s 或 16 GT/s 速率进行 EQ,多少有点浪费。 阅读详情

相关推荐

宇树机器人G1二次开发:导览、起始点、目的地与完整示例

通过宇树G1 SDK的导航接口,开发者可以高效地实现机器人的自主移动功能。连接 -> 设置目标点 -> 发送命令 -> 监控状态。本文提供的完整示例涵盖了从环境搭建到代码实现的全部步骤,并解释了起始点、目的地等关键概念。开发者可以在此基础上,结合多目标点巡逻、动态避障(需高级配置)等功能,构建更复杂的机器人应用。建议读者先在小范围、熟悉的平坦环境中测试,成功后再逐步扩展到更复杂的场景。

m0_52645558的博客 747

Hdu 3622 Bomb Game 2-SAT+二分

Bomb Game Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5672    Accepted Submission(s): 2048 Problem Description Robbie is playi

J. Cole 361

Cartographer从安装到实战:手把手教你运行2D/3D建图与定位

本文提供了一份详尽的Cartographer从零安装到实战应用的完整指南。内容涵盖环境准备、依赖编译、源码构建等关键步骤,并手把手指导读者运行2D/3D官方数据集进行建图与定位测试。文章深入解析了参数配置与自定义数据适配方法,帮助开发者快速掌握这一强大的实时同步定位与建图工具,并将其应用于机器人导航与自动驾驶等实际场景。

rice5的博客 949

HDU 3622 Bomb Game 【二分+2-SAT】

传送门:HDU 3622 Bomb Game Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description Robbie is playing an interesting computer game. The game field is an...

Waiting For You 585

MCGS触摸屏数据记录与U盘导出配置全解析

在工业自动化现场,数据记录是设备运行状态分析与故障追溯的基础。HMI触摸屏作为人机交互核心,不仅承担实时监控任务,还负责过程数据的存储与导出。理解数据采集周期、存盘机制与存储介质的匹配原理,能帮助工程师高效配置数据记录功能。合理运用定时存盘、存盘组与U盘导出,可支撑设备趋势分析、报表生成及事故排查。本文以MCGS触摸屏为例,详解数据记录的完整组态流程,并汇总常见配置陷阱与排查思路,为现场调试与长期运维提供可落地的技术参考。

weixin_34253126的博客 459

【PADS-开发指南】

馒头破戒大师

sinat_23896491的博客 3218

HDU 3622 Bomb Game 二分+2-SAT

二分爆炸半径R,判断是否可行,如果可行,半径可以继续增加。 之前建图有误,结果一直不对。 #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm> #include <v...

aegt43853的博客 193

别再让会议变‘回音壁’:手把手教你调优WebRTC的AEC3回声消除(附实战代码)

本文深入解析WebRTC的AEC3回声消除技术,提供从参数调优到声学环境适配的实战指南。通过诊断回声特征、解剖核心参数(如filter.length_blocks和delay_estimate_smoothing)以及应对特殊场景(如密闭空间与开放办公区),帮助开发者有效解决视频会议中的回声问题,提升语音通信质量。附有实战代码和调试工具,适合需要优化实时通信体验的开发者。

weixin_29220405的博客 171

hdu 3622 Bomb Game (二分+2-sat)

Bomb Game Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5716    Accepted Submission(s): 2069 Problem Description Robbie is playi

K键盘里的青春K 544

Flow Matching05:概率路径与插值【概率路径:线性插值路径(最简单)、高斯插值路径】【先尝试线性插值,看效果如何;若不够好,尝试高斯插值】

好的,我将从数学角度详细解释Flow Matching,从高中生能理解的基础知识开始,逐步深入到高级概念。

u013250861的博客 173

8、水力压裂引起的地质材料力学性质变化的可视化研究

本研究探讨了水力压裂引起的地质材料力学性质变化的可视化方法。利用超声剪切波形数据,通过短时傅里叶变换(STFT)和主成分分析(PCA)进行特征提取和降维,并应用K-means聚类、凝聚聚类和DBSCAN等无监督学习方法对地质力学变化进行非侵入式可视化分析。研究比较了不同特征工程、聚类方法和降维策略对可视化效果的影响,并结合位移不连续性理论为聚类结果分配地质力学变化指数,以提高结果的物理解释性。最终,该方法成功实现了对水力压裂引起的岩石力学性质变化的高效、可靠可视化。

emacs5lisp的博客 109

hdu 3622 Bomb Game(二分+2-sat)

Bomb GameTime Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5985    Accepted Submission(s): 2167Problem DescriptionRobbie is playing an interestin...

albertluf的博客 346

CMM软件:PC-DMIS汽车制造二次开发

PC-DMIS 是一种广泛应用于坐标测量机(CMM)的测量软件,它不仅提供了强大的测量功能,还支持用户通过二次开发来扩展其功能。二次开发可以显著提升测量效率,满足特定的测量需求,减少重复性工作,提高数据处理和分析的准确性。本节将介绍 PC-DMIS 二次开发的基本概念、开发环境的搭建以及开发中常用的工具和方法。PC-DMIS 二次开发为用户提供了强大的工具,可以显著提升测量效率、减少重复性工作并提高数据处理和分析的准确性。

kkchenjj的博客 1813

HDU-3622-Bomb Game(2-SAT+二分)

Bomb Game Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4897    Accepted Submission(s): 1750 Problem Description Robbie is playing a

不会吃鱼的喵 841

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

hdu 3622 Bomb Game(2-SAT,二分)

题意: Robbie is playing an interesting computer game. The game field is an unbounded 2-dimensional region. There are N rounds in the game. At each round, the computer will give Robbie two places, and R...

AAAAAAAC的博客 197

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

HDU3622 Bomb Game(二分+2-SAT)

题意 给n对炸弹可以放置的位置(每个位置为一个二维平面上的点), 每次放置炸弹是时只能选择这一对中的其中一个点,每个炸弹爆炸 的范围半径都一样,控制爆炸的半径使得所有的爆炸范围都不相 交(可以相切),求解这个最大半径. 题解 首先二分最大半径值,然后2-sat构图判断其可行性,对于每 两队位置(u,uu)和(v,vv),如果u和v之间的距离小于2*id,也就是说位置u和位置v...

airen6935的博客 324

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

hdu 3622 Bomb Game(2-sat,二分,4级)

Bomb Game Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2696    Accepted Submission(s): 894 Problem Description Robbie is playing an

nealgavin的专栏 761

hdu3622 Bomb Game(二分+2-SAT)

Bomb Game Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2798    Accepted Submission(s): 933 Problem Description Robbie is playin

ophunter的专栏 1258

HDU 3622 Bomb Game( 二分查找+2-SAT )

题目大意: 在一个平面上,放炸弹。每次给出两个位置,在这两个位置里面选择一个放炸弹。一共给出n组位置,如前面所述,每组有个两个位置。然后,对于每个炸弹,都有一个power,即爆炸时的破坏的半径,这个半径是可以控制的,几就是说,以所选的位置为圆心的半径可以控制的圆。要求圆和圆之间不能有交集,可以相切。求解,满足n个圆无交集的最大的半径是多少? 题目分析: 首先,是这个半径应该是多少,其实要求n

AClion的专栏 1123

HDU 3622 Bomb Game(2-SAT+二分)

HDU 3622 Bomb Game(2-SAT+二分) http://acm.hdu.edu.cn/showproblem.php?pid=3622 题意:有N对地点,每对地点中的一个地方要放一个炸弹,你可以控制炸弹的爆炸半径,现在要求所有N个被放的炸弹爆炸范围不重叠.问你在所有可行方案中的炸弹爆炸最大半径是多少?(假设所有炸弹爆炸半径相同,本假设与原提议的要求等价,可以自己想想) 分析:

code 935

HDU 3622 —— Bomb Game(2-SAT,二分答案)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3622 题意:有N对点,每对点中必须选择一个点,以每个选择点we

hongrock的专栏 765

HDU - 3622 Bomb Game 二分 + 2 - SAT tarjan

题意:有一个有趣的游戏,每一轮给定两个点,只能且必须在一个点上面放置炸弹,炸弹的爆炸范围是任意的,但是任意两个炸弹的爆炸范围不能相交,在n轮游戏过后,得分为最小爆炸范围的半径,求n轮游戏之后的最大可能得分。 题目为每次只能在两个里选一个,是2-SAT模型,又所求的为最大化最小值,所以用二分。 每次看两点间距离是否大于半径的二倍,是就可以都选,跑2-SAT,如果一组里的值都选了,则说明半径小了,...

陌离将离 271

[二分+2-sat]Hdu 3622——Bomb Game

题目传送门题目概述在一个无限大的平面里画n个圆。 每个圆有2个待选的放置位置。 限制条件为圆不相交,求最小半径的最大值。解题思路显然如果R满足限制条件,那么任意r(r<<R)肯定满足限制条件,想到用二分枚举答案。 接下来考虑如何验证。 不难发现这是一个2-sat问题。 假设位置i,ji,j以当前最小半径做圆相交,显然可以得到i−>j′i->j' j−>i′j->i' 如

CHN_JZ的博客 908

HDU 3622 Bomb Game 二分 + 2-sat

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3622题意:一个游戏有n轮,每轮给出两个点的坐标,表示以这两个点之中的一个为圆心画一个圆,半径自定,但要求n轮后画出的n个圆之间不能相交,求半径最小的那个圆的半径最大是多少思路:首先最大化最小值,这是二分的典型套路,我们二分半径,然后对于不同组的两点,如果他们之间距离小于2倍的枚举值,那么就是两者只能存在一个

弱智就要多努力 430

|Hdu 3622|2-SAT|二分|Bomb Game

Hdu传送门/* hdu 3622 二分后2-SAT判断 本题教训: 1、2-SAT加边视情况加 2、浮点数二分查找的写法 3、浮点数的eps最好开多一点,防卡精度 */ #include<cstdio> #include<cstring> #include<vector> #include<cmath> #include<algorithm>

博客停更,请到"再见,优快云"文章中找新博客地址 542

HDU 3622 Bomb Game(2-sat)

HDU 3622 Bomb Game 题目链接 题意:求一个最大半径,使得每个二元组的点任选一个,可以得到所有圆两两不相交 思路:显然的二分半径,然后2-sat去判定即可 代码: #include #include #include #include #include #include using namespace std; const int MAX

Remilia's 1066
上一篇: 2021牛客寒假算法基础集训营4-B-武辰延的字符串( 扩展kmp / 二分+哈希)
下一篇: 2021牛客寒假算法基础集训营3-C- 重力坠击(计算几何)
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值