二分+2-sat——hdu3062
hdu3622升级版
注意要保留两位小数
/*
给定n对圆心(x,y),要求从每对里找到一个点画圆,不可相交
使得最小半径最大
二分答案,设最小半径为r
然后两两配对一次进行判断,在2-sat上连边即可
*/
#include<bits/stdc++.h>
using namespace std;
#define esp 1e-6
#define N 405
#define M 405*405
struct Node{double x,y;}p[N][];
struct Edge{int to,nxt;}e[M<<];
int n,m,head[N],tot;
void add(int u,int v){
e[tot].to=v;e[tot].nxt=head[u];head[u]=tot++;
} int dfn[N],low[N],cnt,id[N],ind,stk[N],top,ins[N];
void tarjan(int x){
low[x]=dfn[x]=++ind;
stk[++top]=x;ins[x]=;
for(int i=head[x];i!=-;i=e[i].nxt){
int v=e[i].to;
if(!dfn[v]){
tarjan(v);
low[x]=min(low[x],low[v]);
}
else if(ins[v])
low[x]=min(low[x],low[v]);
}
if(low[x]==dfn[x]){
int y;cnt++;
do{
y=stk[top--];
ins[y]=;
id[y]=cnt;
}while(x!=y);
}
} void init(){
cnt=tot=ind=top=;
memset(head,-,sizeof head);
memset(low,,sizeof low);
memset(dfn,,sizeof dfn);
memset(ins,,sizeof ins);
} int check(Node a,Node b,double r){
double dis=sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
if(dis>=*r)return ;
return ;
}
int judge(double r){//判断半径r是否可行
init();
for(int i=;i<n-;i++)
for(int j=i+;j<n;j++){
if(!check(p[i][],p[j][],r))
add(i*,j*+),add(j*,i*+);
if(!check(p[i][],p[j][],r))
add(i*,j*),add(j*+,i*+);
if(!check(p[i][],p[j][],r))
add(i*+,j*+),add(j*,i*);
if(!check(p[i][],p[j][],r))
add(i*+,j*),add(j*+,i*);
}
for(int i=;i<*n;i++)
if(!dfn[i])tarjan(i);
for(int i=;i<n;i++)
if(id[i*]==id[i*+])return ;
return ;
} int main(){
while(cin>>n){
for(int i=;i<n;i++){
cin>>p[i][].x>>p[i][].y;
cin>>p[i][].x>>p[i][].y;
}
double l=,r=,mid,ans=;
while(l+esp<=r){
mid=(l+r)/;
if(judge(mid))
ans=mid,l=mid;
else r=mid;
}
printf("%.2lf\n",ans);
}
}
二分+2-sat——hdu3062的更多相关文章
- 证明与计算(3): 二分决策图(Binary Decision Diagram, BDD)
0x01 布尔代数(Boolean algebra) 大名鼎鼎鼎的stephen wolfram在2015年的时候写了一篇介绍George Boole的文章:George Boole: A 200-Y ...
- Map Labeler POJ - 2296(2 - sat 具体关系建边)
题意: 给出n个点 让求这n个点所能建成的正方形的最大边长,要求不覆盖,且这n个点在正方形上或下边的中点位置 解析: 当然是二分,但建图就有点还行..比较难想..行吧...我太垃圾... 2 - s ...
- LA 3211 飞机调度(2—SAT)
https://vjudge.net/problem/UVALive-3211 题意: 有n架飞机需要着陆,每架飞机都可以选择“早着陆”和“晚着陆”两种方式之一,且必须选择一种,第i架飞机的早着陆时间 ...
- UVALive - 3211 (2-SAT + 二分)
layout: post title: 训练指南 UVALive - 3211 (2-SAT + 二分) author: "luowentaoaa" catalog: true m ...
- hdu3715 2-sat+二分
Go Deeper 题意:确定一个0/1数组(size:n)使得满足最多的条件数.条件在数组a,b,c给出. 吐槽:哎,一水提,还搞了很久!关键是抽象出题目模型(如上的一句话).以后做二sat:有哪些 ...
- POJ 2749 2SAT判定+二分
题意:图上n个点,使每个点都与俩个中转点的其中一个相连(二选一,典型2-sat),并使任意两点最大 距离最小(最大最小,2分答案),有些点相互hata,不能选同一个中转点,有些点相互LOVE,必需选相 ...
- 2 - sat 模板(自用)
2-sat一个变量两种状态符合条件的状态建边找强连通,两两成立1 - n 为第一状态(n + 1) - (n + n) 为第二状态 例题模板 链接一 POJ 3207 Ikki's Story IV ...
- 2-SAT(HDU-3062 party)
2-SAT(HDU-3062 party) 解决问题类型: 书本定义:给一个布尔方程,判断是否存在一组解使整个方程为真,被称为布尔方程可满足性问题(SAT) 因为本题只有0,1(丈夫 妻子只能去一个人 ...
- BZOJ1012: [JSOI2008]最大数maxnumber [线段树 | 单调栈+二分]
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 8748 Solved: 3835[Submi ...
随机推荐
- hexo next修改代码区主题,修改字体样式,大小
文章目录 广告 修改代码区主题 站点_config.yml 主题_config.yml 修改字体样式,大小 ps 我自己的方式 广告 本人博客地址:https://mmmmmm.me 源码:https ...
- Codeforces 1174B Ehab Is an Odd Person
题目链接:http://codeforces.com/problemset/problem/1174/B 题意:给定长度 n 的数组,任意俩个相加为奇数的数可以交换数组中的位置,让这个数组尽量从小到大 ...
- 面试总结【css篇】- css3新增特性
1.css3中的关键帧 @keyframes规则通过在动画序列中定义关键帧(或waypoints)的样式来控制CSS动画序列中的中间步骤.这 比转换更能控制动画序列的中间步骤. @keyframes ...
- opencv——基础篇
一 . opencv是什么及其作用? OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效— ...
- LeetCode 31. Next Permutation【Medium】
Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...
- 学无止境的CSS(xHTML+CSS技巧教程资源大全)
本文里面收集一些有关CSS的技巧.教程.工具和观点等,其中一些你也许早就运用的炉火纯青,也可能有的你听都没听说过.不管是新手还是高手,大家都继续学习吧. 一,Web 标准 要玩游戏,就得先了解规则.要 ...
- Windows7 打开word2003提示:向程序发送命令时出现错误 解决方案
1.关闭所有打开的Word文档:(包括任务管理器里的进程)2.复制这条命令:%appdata%\microsoft\templates3.开始 → 运行 → 粘贴上面复制的命令 → 确定4.在打开的目 ...
- centos7.3更换ssh默认登陆端口
说明:本方法目前通用于7.1-7.3 vim /etc/ssh/sshd_config 找到Port 22下面添加一行:Port 12345保存退出. systemctl restart sshd.s ...
- dubbo重连机制会不会造成错误
dubbo在调用服务不成功时,默认会重试2次. Dubbo的路由机制,会把超时的请求路由到其他机器上,而不是本机尝试,所以 dubbo的重试机器也能一定程度的保证服务的质量. 但是如果不合理的配置重试 ...
- axios调用接口
axios调用接口 1. 按照axiosnpm install --save-dev axios2.在main.js 引入axios, 设置全局属性$http 指向axios main.js impo ...