博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu3622 2-sat问题,二分+判断有无解即可。
阅读量:5837 次
发布时间:2019-06-18

本文共 1516 字,大约阅读时间需要 5 分钟。

/*2-sat问题初破!题意:每一对炸弹只能选一个(明显2-sat),每个炸弹半径自定,爆炸范围不可
相交,求那个最小半径的最大值(每种策略的最小半径不同)。思:最优解:必然是选择的点最近
的俩个距离/2,其他半径大小无纺,不妨设他们都为该最小半径。求最小值最大,二分答案,每次判定
R是否可行,可行就往大的搜索,注意精度r-l<10^-4才可过。该题不需要输出方案,只需判定是否矛盾的

点在同一个SCC中即可。*/

#include
//G++ 343ms,/c++,898ms 不知道为神马。。。求解释。。#include
#include
#include
#include
#include
using namespace std;int n;const int MAX=201;struct points //点,01,23,45.。。相连为一对,x^1取对应点(改变奇偶性){ int x,y;};points point[MAX];int low[MAX];int dfn[MAX];int visited[MAX];bool is_instack[MAX];stack
s;int times=0; int scc[MAX]; int numblock;vector
>edges(MAX); //原图void initialize() //初始化要注意!看哪里新建图,新遍历了。因为它耽误了好久!{ numblock=times=0; for(int i=0;i<2*n;i++) { visited[i]=low[i]=dfn[i]=is_instack[i]=0; edges[i].clear(); scc[i]=-1; }}void tarjan(int u) //有向图dfs,这个不解释{ low[u]=dfn[u]=++times; is_instack[u]=1; s.push(u); int len=edges[u].size(); for(int i=0;i
low[v])low[u]=low[v]; } else if(is_instack[v]&&dfn[v]
>1)!=(j>>1))&&dis(point[i],point[j])<4*r*r) //这里的读入很妙(学来的),等价偶数枚举其大2之后的,奇数枚举其后(比他大1)所有 { edges[i].push_back(j^1); edges[j].push_back(i^1); } } for(int i=0;i<2*n;i++) { if(visited[i]==0) { visited[i]=1; tarjan(i); } } for(int i=0;i<2*n;i+=2) { if(scc[i]==scc[i+1]) //矛盾的点在一个SCC中, { return false; } } return true;}void readin(){ for(int i=0;i
0.0001) //二分答案! { mid=(right+left)/2; if(check(mid)) { left=mid; } else { right=mid; } } printf("%.2f\n",left); }}

转载于:https://www.cnblogs.com/yezekun/p/3925812.html

你可能感兴趣的文章
基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET...
查看>>
Caché Monitor 2.03发布,Caché的SQL开发工具 - 开源中国社区
查看>>
『转』Emsisoft Anti-Malware 8刷Key教程 - 文字版
查看>>
u-boot中添加自定义命令
查看>>
winform窗体的关闭与资源的释放
查看>>
Delphi XE5 for Android (二)
查看>>
一桶煤气能烧多久
查看>>
设置边框阴影效果
查看>>
hadoop,hbase,hive安装全记录(转)
查看>>
zz 跟风小结一下孕期~
查看>>
SQL Server 根据表名取得 表主键
查看>>
从源码的角度解析View的事件分发
查看>>
C#中转义字符
查看>>
hiberante中get和load方法的区别
查看>>
ios7注意事项随笔
查看>>
VisualStudio自动编码插件(Autocode——devprojects.net)
查看>>
页面图片中间有条线----解决
查看>>
字面量理解
查看>>
Alwayson--与复制的影响
查看>>
使用kendynet构建异步redis访问服务
查看>>