BZOJ1857: [Scoi2010]传送带
2015-12-09 20:02
260 查看
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1857
三分套三分。
三分套三分。
#include<cstring> #include<iostream> #include<algorithm> #include<cstdlib> #include<cstdio> #include<cmath> #include<queue> #define rep(i,l,r) for (int i=l;i<=r;i++) #define down(i,l,r) for (int i=l;i>=r;i--) #define clr(x,y) memset(x,y,sizeof(x)) #define maxn 100500 #define eps 1e-3 #define ll long long using namespace std; double ax,ay,bx,by,cx,cy,dx,dy,p,q,r; int read(){ int x=0,f=1; char ch=getchar(); while (!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();} while (isdigit(ch)) {x=x*10+ch-'0'; ch=getchar();} return x*f; } double sqr(double x){ return x*x; } double dis(double x,double y,double xx,double yy){ return sqrt(sqr(x-xx)+sqr(y-yy)); } double cal(double x,double y){ double lx=cx,ly=cy,rx=dx,ry=dy; while (fabs(lx-rx)>=eps||fabs(ly-ry)>=eps){ double mx=(rx-lx)/3,my=(ry-ly)/3; double t1=dis(ax,ay,x,y)/p+dis(x,y,lx+mx,ly+my)/r+dis(lx+mx,ly+my,dx,dy)/q; double t2=dis(ax,ay,x,y)/p+dis(x,y,lx+mx*2,ly+my*2)/r+dis(lx+mx*2,ly+my*2,dx,dy)/q; if (t1<t2) {rx=lx+mx*2,ry=ly+my*2;} else {lx=lx+mx; ly=ly+my;} } return dis(ax,ay,x,y)/p+dis(x,y,lx,ly)/r+dis(lx,ly,dx,dy)/q; } int main(){ scanf("%lf%lf%lf%lf",&ax,&ay,&bx,&by); scanf("%lf%lf%lf%lf",&cx,&cy,&dx,&dy); scanf("%lf%lf%lf",&p,&q,&r); double lx=ax,ly=ay,rx=bx,ry=by; while (fabs(lx-rx)>=eps||fabs(ly-ry)>=eps){ double mx=(rx-lx)/3,my=(ry-ly)/3; double t1=cal(lx+mx,ly+my),t2=cal(lx+mx*2,ly+my*2); if (t1<t2) {rx=lx+mx*2,ry=ly+my*2;} else {lx=lx+mx; ly=ly+my;} } printf("%.2lf\n",cal(lx,ly)); return 0; }
相关文章推荐
- Unity 协程与线程区别
- Activiti进阶(三)——流程定义的CRUD
- html返回上一页
- int 与String之间的转换
- jquery特效 点击展示与隐藏全文
- 我就是想看一下博客多久能显示出来
- android JNI常用添加log方法
- Java排序之排序大综合
- 关于 iOS 的 StoryBoard,接受的那一刻才发现她的美 - 当然美的事物都需要业心照料
- Oracle
- PHP 连接 oracle数据库(可远程)的测试操作
- Oracle导出Excel时怎么避免出现添加引号、字段前面去0等问题
- TortoiseSVN 命令 (命令行执行工具)
- MyEclipse与heidiMysql
- iis7 发布mvc 遇到的HTTP错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容
- leetcode Excel Sheet Column Title
- #读书笔记#温伯格技术思想三部曲:颠覆完美软件(3)
- 利用栈的原理计算一个表达式的值
- App开发需要注意的8条
- lucene4.7 分页