暑假集训(2)第九弹 ----- Points on Cycle(hdu1700)
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Description
Now give you a point on the cycle, you are to find out the other two points on it, to maximize the sum of the distance between each other
you may assume that the radius of the cycle will not exceed 1000.
Input
Output
Alway output the lower one first(with a smaller Y-coordinate value), if they have the same Y value output the one with a smaller X.
when output, if the absolute difference between the coordinate values X1 and X2 is smaller than 0.0005, we assume they are equal.
Sample Input
1.500 2.000
563.585 1.251
Sample Output
-280.709 -488.704 -282.876 487.453
问题分析:它是一道几何题,假设以知点a坐标为(x0,y0),位置点b,c为(x1,y1),(x2,y2). 圆方程为x2+y2 = r2;可将圆方程化为x=rcosα,y=rsinα;
又有x12+y1 2= r2 = x02+y0 2,(a*b)/|a|*|b| = cos120。
易得 acosα + bsinα = -0.5r
(acosα)2 = (0.5r + bsinα)2
r2sinα2 + rbsinα + 0.25r2 - a2 = 0
得 x1 = -0.5*b + a*√3 * 0.5 或 x1 = -0.5*b - a*√3 *0.5(舍去)
及 y = -0.5*b - a*√3 * 0.5 或 y= 0.5*b + a*√3 * 0.5(舍去)
同理可得x2,y2;
也可直接利用cos(α+β) = cosαcosβ - sinαsinβ ,sin(α+β) = sinαcosβ + cosαsinβ求解,
#include <cstdio>
#include <cmath>
int main()
{
double a,b,x0,y0,x1,y1,x2,y2;
int t;
a=sqrt(3.0)/;
b=-0.5;
scanf("%d",&t);
while(t--)
{
scanf("%lf%lf",&x0,&y0);
x1 = b*x0 - a*y0;
y1 = b*y0 + a*x0;
x2 = b*x0 + a*y0;
y2 = b*y0 - a*x0;
if(y1<y2 || ((fabs(y1-y2) < 0.005) && x1 < x2))
printf("%.3lf %.3lf %.3lf %.3lf\n",x1,y1,x2,y2);
else
printf("%.3lf %.3lf %.3lf %.3lf\n",x2,y2,x1,y1);
}
return ;
}
暑假集训(2)第九弹 ----- Points on Cycle(hdu1700)的更多相关文章
- 2016HUAS暑假集训训练2  L - Points on Cycle
		题目链接:http://acm.hust.edu.cn/vjudge/contest/121192#problem/L 这是一道很有意思的题,就是给定一个以原点为圆心的圆,然后给定 一个点 求最大三 ... 
- 暑假集训(3)第二弹 -----Jungle Roads(Hdu1301)
		问题梗概:自从上次某个acmer来设计了拉格瑞圣岛的交通路线后,岛上的酋长就相当苦恼,他发现,虽然这些修好的公路便利了岛上的 交通,并且让拉格瑞圣岛的旅游业更加兴旺,甚至他们还收到了一笔不小的国际资金 ... 
- 暑假集训(1)第二弹 -----Catch the cow(Poj3278)
		Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ... 
- 暑假集训(5)第二弹———湫湫系列故事——减肥记I(hdu4508)
		问题描述:舔了舔嘴上的油渍,你陷在身后柔软的靠椅上.在德源大赛中获得优胜的你,迫不及待地赶到“吃到饱”饭店吃到饱.当你 正准备离开时,服务员叫住了你,“先生,您还没有吃完你所点的酒菜.”指着你桌上的一 ... 
- 暑假集训(5)第一弹——— Super Jumping! Jumping! Jumping!(hdu1087)
		题意概括:在上次与娑殚的三次博弈中,你们都取得了胜利.便向娑殚提出要求,借助他的力量,传送到一个安全的地方. 你们的愿望达成了,不过,你和小A似乎失散了. 街上人来人往的特别热闹,每一个人的脸上都洋溢 ... 
- 暑假集训(4)第二弹 -----递推(hdu2254)
		题意概括:上次小A在你的帮助下成功炼成贤者法阵的第一部分——三角分隔,现在他准备绘制法阵的第二部分——莫测矩形. 而他又遇到了一个问题,他不知道不同矩形到底有多少个. 秉持帮人帮到底,送佛送到西的基本 ... 
- 暑假集训(4)第一弹 -----递推(Hdu2039)
		题意梗概:fff团团员小A想退团了,不过要退团,他必须绘制出贤者法阵,以证明他有资格不受大fff之灵的监督 并退团,小A他现在要开始收集材料了,但是,他不清楚应该买多少份材料. 虽然你并不想帮他退团, ... 
- 暑假集训(3)第一弹 -----还是畅通工程(hdu1233)
		题意梗概:N(n<100)个村子想要富起来,自然就要先修路,不过到底还是没富起来,所以陷入了一个怪圈 :资金不足->修不起路->资金不足...... 为了实现走向全民小康社会,全面实 ... 
- 暑假集训(2)第二弹 ----- The Suspects(POJ1611)
		B - The Suspects Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:20000KB ... 
随机推荐
- Mac IDEA快捷键积累
			切来切去:Ctrl+Tab 在打开的不同类中切换来切换去 完美代码结构:Alt+Command+L 不同编辑点跳转:Alt+Command+↔️ 快速重写:Ctrl+N 快速选择代码:Alt+Shif ... 
- HDU-4419 Colourful Rectangle 矩形多面积并
			题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4419 利用二进制,R为1.G为2.B为4,然后通过异或运算可以得到其它组合颜色.建立7颗线段树,每颗线 ... 
- POJ1836 - Alignment(LIS)
			题目大意 一队士兵排成一条直线,问最少出队几个士兵,使得队里的每个士兵都可以看到又端点或者左端点 题解 从左往右搞一遍LIS,然后从右往左搞一遍LIS,然后枚举即可... 代码: #include&l ... 
- Laravel教程:laravel 4安装及入门
			一.安装Composer首先你需要安装Composer,Composer是PHP依赖管理工具,Laravel框架就是使用 Composer 执行安装和依赖管理. 注:(1)若安装Composer出错, ... 
- Video Surveillance - POJ 1474(判断是否存在内核)
			题目大意:询问是否在家里装一个监视器就可以监控所有的角落. 分析:赤裸裸的判断多边形内核题目. 代码如下: #include<iostream> #include<string.h& ... 
- bzoj3926: [Zjoi2015]诸神眷顾的幻想乡 对[广义后缀自动机]的一些理解
			先说一下对后缀自动机的理解,主要是对构造过程的理解. 构造中,我们已经得到了前L个字符的后缀自动机,现在我们要得到L+1个字符的后缀自动机,什么需要改变呢? 首先,子串$[0,L+1)$对应的状态不存 ... 
- Atom实例
			示例[编辑] 一个Atom文档: <?xml version="1.0" encoding="utf-8"?> <feed xmlns=&qu ... 
- windows 文件名太长无法删除的解决方法
			国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ... 
- Redis学习手册(内存优化)
			自从Redis 2.2之后,很多数据类型都可以通过特殊编码的方式来进行存储空间的优化.其中,Hash.List和由Integer组成的Sets都可以通过该方式来优化存储结构,以便占用更少的空间,在有些 ... 
- 原创 Reflector 8.1 反激活
			今天下载了Reflector8.1,注册时不小心给注册成标准版了.郁闷,然后想反注册,结果人家的注册服务器不认你的注册码.怎么办? google.... 然后找到一篇 Deactivating you ... 
