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

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

  看到半平面交吓傻了。

  Po姐教你模拟退火乱搞233

  模拟退火横坐标,然后塔的高度二分一下就行了。

  然而交上去一直tle= =。。。。把模拟退火那部分改得和标程一模一样还是跪。。

  最后真相是二分的时候double精度会炸(掀桌。。。然而标程不知为啥用double活得好好的(虽然随便随机一个数据就能卡。。

  改成long double就过了= =

1 #include
2 #include
3 #include
4 #include
5 #include
6 #define d double 7 #define ld long double 8 using namespace std; 9 const int maxn=323;10 const d eps=1e-7;11 struct poi{12 int x,y;13 }a[maxn];14 d ansx,ansaddy,nowx,nowy;int posl,posr;15 int i,j,k,n,m;16 17 int ra,fh;char rx;18 inline int read(){19 rx=getchar(),ra=0,fh=1;20 while((rx<'0'||rx>'9')&&rx!='-')rx=getchar();21 if(rx=='-')fh=-1,rx=getchar();22 while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra*fh;23 }24 25 inline d randlf(){26 return rand()%10000/10000.0;27 }28 bool judge(){29 int i;30 for(i=1;i
(nowy-a[i+1].y)*(nowx-a[i].x))31 return 0;32 for(i=posr;i
(a[i+1].y-nowy)*(a[i].x-nowx))33 return 0;34 return 1;35 }36 inline d geth(){37 int L=1,R=n,MID;ld sy,l,r,mid;38 while(L
>1)].x<=nowx)L=MID;else R=MID-1;40 posl=L,posr=L+1;41 if(a[L].x==nowx)posl--,sy=a[L].y;else sy=a[posl].y+(a[posr].y-a[posl].y)*(nowx-a[posl].x)/(a[posr].x-a[posl].x);42 l=0,r=1e11;//printf("geth: x:%.8lf l r:%d %d sy:%.3lf\n",nowx,a[posl].x,a[posr].x,sy);43 while(l+1e-7
1e-5){55 T*=0.99;//printf("! %d\n",fabs(nowaddy-geth())<=eps);56 prex=nowx,nowx+=T*(randlf()*2-1);57 // printf("try:%.3lf\n",nowx);58 if(nowx
a[n].x){nowx=prex;T/=0.991;continue;}59 tmpaddy=geth();60 61 if(tmpaddy>nowaddy&&exp((nowaddy-tmpaddy)/T)
a[n].x)continue;68 geth();69 }70 }71 int main(){72 n=read();srand(233);73 // srand(19980406);74 for(i=1;i<=n;i++)a[i].x=read();75 for(i=1;i<=n;i++)a[i].y=read();ansaddy=1e11;76 SA();77 printf("%.3lf\n",ansaddy+eps);//printf("ansx: %.3lf\n",ansx);78 return 0;79 }
View Code

 

转载于:https://www.cnblogs.com/czllgzmzl/p/5301456.html

你可能感兴趣的文章
java虚拟机的运行原理
查看>>
配置Oracle10g即时客户端plsql的配置
查看>>
关于设计:Actionscript 有关鼠标事件笔记2
查看>>
【LOJ】#2538. 「PKUWC2018」Slay the Spire
查看>>
Helper
查看>>
架构设计系列-前端模式的后端(BFF)翻译PhilCalçado
查看>>
常用dos命令
查看>>
Redis学习第四课:Redis List类型及操作
查看>>
满血复活前的记录(持续更新ing)
查看>>
vs2008使用过AnkhSVN后不能绑定到vss的问题解决
查看>>
在vue中使用sass
查看>>
IPv4组播通信原理
查看>>
Sql Server 新的日期类型
查看>>
“我爱淘”冲刺阶段Scrum站立会议8
查看>>
js获取元素class的几种方法
查看>>
delphi 枚举类型与字符串的转换
查看>>
UVA-10689 Yet another Number Sequence (矩阵二分幂模板)
查看>>
element自定义表单验证
查看>>
Mysql 存储引擎的区别和比较
查看>>
vue管理平台的动态路由(后台传递路由,前端拿到并生成侧边栏)
查看>>