首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

UVa10250,另外两棵树-刘汝佳"算法竞赛入门经典"里面的第一道计算几何题.竟然一直WA.太受挫了.解决方案

2012-02-24 
UVa10250,另外两棵树----刘汝佳算法竞赛入门经典里面的第一道计算几何题....竟然一直WA...太受挫了...买

UVa10250,另外两棵树----刘汝佳"算法竞赛入门经典"里面的第一道计算几何题....竟然一直WA...太受挫了...
买了刘汝佳"算法竞赛入门经典"
里面的第一道计算几何题叫
另外两棵树(UVa10250)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=44&page=show_problem&problem=1191
竟然一直WA...
自信心太受挫了...

不知道有没有谁AC过的...
分享一下解题方法吧...

我是刚接触算法的新手......

题目的大意是给出两个点,求另外两个点...
使得这四个点组成一个正方形...
初始的两个点和要求的点位于正方形对角线上...

然后我再网上查找说要用到long double...
可是我用了还是WA啊....

呜....

[解决办法]
帮朋友,高手给楼主讲讲啊!定
[解决办法]
算法就是千变万化,不离其中
[解决办法]
楼主也是搞acm的?
交个朋友吧...

/*
10250 - The Other Two Trees

geometry...
真的不知道这题浪费了我多少时间了...

其实就是已知正方形的对角线的两点坐标
求另外两点...
由于是几何题...
精度要求又是暴变态的...
所以...

(x1,y1) (x2,y2)
令mx=(x1+x2)/2
my=(y1+y2)/2
dx=mx-x1
dy=my-y1(不要加绝对值)
则解为
(mx-dy,my+dx)
(mx+dy,my-dx)
*/

#include<iostream>
#include<iomanip>
#include<cmath>
#define eps 1e-15
using namespace std;

int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif

long double x1,y1,x2,y2;
while(cin>>x1>>y1>>x2>>y2)
if(fabs(x1-x2)<eps && fabs(y1-y2)<eps)
puts("Impossible.");
else
{
long double mx=(x1+x2)/2;
long double my=(y1+y2)/2;
long double dx=mx-x1;
long double dy=my-y1;

cout.precision(10);

cout<<fixed<<showpoint<<mx-dy<<" "<<my+dx<<" "<<mx+dy<<" "<<my-dx<<endl;
}

return 0;
}

热点排行