hdu 2073 题目解答:另类的坐标系内求两点距离,归到底还是要看数学规律。先把前面到 (1,0) (2,0)... (i,0) 的距离都求出放在数组内,之后可用于求点到原点距离。
不用硬求两点间距离,可以先把两点到原点的距离求出,再相减取绝对值即可。
AC 代码如下:
- #include#include#include#include#includeusing namespace std;
- double slash(double a, double b); //根据直角边计算三角形面积double l (int x, int y); //求该点到原点折线长度double length[205]; //前面折线长度之和int main(){//freopen("F:\\学习\\backup.txt","r",stdin);length[0] = 0;length[1] = 1 + sqrt(2);for (int i=2; i<=200; i++)length[i] = length[i-1] + slash(i, i-1) + slash(i, i);int t;cin >> t;while (t--) {int x1, y1, x2, y2;cin >> x1 >> y1 >> x2 >> y2; double ans = abs (l(x1, y1) - l(x2, y2));printf("%.3lf\n", ans);} return 0;}double slash (double a, double b) //根据直角边计算斜边长度{return sqrt (pow(a,2) + pow(b,2));}double l (int x, int y) //求该点到原点折线长度{return length[x+y] - slash(y, y);}
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2017/02-25/17598189.html