博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P2600 [ZJOI2008]瞭望塔
阅读量:7228 次
发布时间:2019-06-29

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

暴力也行,退火也行,不是很明白为啥还要用半平面交……

总之就是把原来的所有限制看成一堆半平面
根据黄学长的博客塔肯定建在转折处最优

//minamoto#include
#define fp(i,a,b) for(register int i=a,I=b+1;i
I;--i)template
inline bool cmin(T&a,const T&b){return a>b?a=b,1:0;}using namespace std;#define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)char buf[1<<21],*p1=buf,*p2=buf;int read(){ int res,f=1;char ch; while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1); for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0'); return res*f;}const int N=1005;struct node{double x,y;}p[N],a[N];struct L{node a,b;double sl;}l[N],q[N];int n,cnt,top,tot;double ans=1e60;inline node operator -(node a,node b){return {a.x-b.x,a.y-b.y};}inline double operator *(node a,node b){return a.x*b.y-a.y*b.x;}inline bool operator <(L a,L b){ if(a.sl!=b.sl)return a.sl
=p[i].x&&a[k].x<=p[i+1].x){ node t;t.x=a[k].x,t.y=-1; cmin(ans,a[k].y-inter(L{p[i],p[i+1]},L{t,a[k]}).y); } fp(k,1,n)fp(i,1,tot-1)if(p[k].x>=a[i].x&&p[k].x<=a[i+1].x){ node t;t.x=p[k].x,t.y=-1; cmin(ans,inter(L{a[i],a[i+1]},L{t,p[k]}).y-p[k].y); }}int main(){// freopen("testdata.in","r",stdin); n=read();fp(i,1,n)p[i].x=read();fp(i,1,n)p[i].y=read(); init(),hpi(),getans(); printf("%.3lf\n",ans);return 0;}

转载于:https://www.cnblogs.com/bztMinamoto/p/10028339.html

你可能感兴趣的文章
关于FB4.6插件安装后默认语言环境的更改问题
查看>>
免费分区助手
查看>>
Javascript通过Name调用Function
查看>>
统计当前在线用户数量
查看>>
IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)
查看>>
PHP项目记录
查看>>
.net面试题系列文章七(附答案)
查看>>
FastSocket
查看>>
ionic $ionicSlideBoxDelegate 滑动框事件
查看>>
点击文字,把input type="radio"也选中
查看>>
第一章 Java多线程技能
查看>>
Java 集合系列-第八篇-Map架构
查看>>
springmvc 3.2 @MatrixVariable bug 2
查看>>
React-Native PanResponder手势识别器
查看>>
IOS11 光标错位问题
查看>>
如何设计用户登录
查看>>
linux安装mysql5.7.19
查看>>
Zookeeper+ActiveMQ 集群实现
查看>>
加权有向图问题2----多源最短路径问题(Floyd算法)和关键路径算法
查看>>
logback logback.xml常用配置详解(三) <filter>
查看>>