zoukankan      html  css  js  c++  java
  • hdu 2073 无限的路 (递推)

    点击打开链接

    分析:这个线段距离原点的长可分为两部分。第一部分是无点的线段,长度依次为√(0^2+1^2)、√(1^2+2^2)、√(2^2+3^2)……√((n-1)^2+n^2)这个n的值刚好为这一点的横纵坐标之和;第二部分是有点的线段,这个很容易发现长度依次为√2、2√2、3√2、……(m-1)√2 ,第m条有点线段长度是这一点横坐标乘以√2.并且这个m的值与n相等.

          综上,只需要求出两个点距离原点的距离,相减求绝对值即可。

    #include"stdio.h"
    #include"math.h"
    double fun(double x,double y)
    {
    	double ans;
    	double m=(double)sqrt(2);
    	int n,i;
    	n=x+y;
    	ans=0.0;
    	for(i=1;i<n;i++)
    		ans+=i*m;
    	ans+=x*m;//这里注意
    	for(i=0;i<n;i++)
    		ans+=sqrt(i*i+(i+1)*(i+1));
    	return ans;
    }
    int main()
    {
    	int t;
    	int n;
    	int x1,x2,y1,y2;
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
    		printf("%.3f\n",fabs(fun(x1,y1)-fun(x2,y2)));
    	}
    	return 0;
    }
    


  • 相关阅读:
    python三元表达式
    购物车的升级系统
    python迭代器
    python函数装饰器
    python 闭包函数
    python名称空间与作用域
    python函数的嵌套
    python函数对象
    python函数之可变长参数
    python函数的参数
  • 原文地址:https://www.cnblogs.com/yyf573462811/p/6365186.html
Copyright © 2011-2022 走看看