hdu2073无限的路

来源:互联网 发布:手机扫码软件 编辑:程序博客网 时间:2024/04/28 18:54

看图找规律,那笔写写就知道了

因为最多输入100内的数, 但是算s[i]的时候 点(99,99)就198了 

一开始开的120的数组开小了,导致第三组数据不过


#include "iostream"
#include "cmath"
using namespace std;
double s[200];
void ini()
{
    s[0] = 0;                               // (0,0)  的值当做s[0]
    s[1] = 1; // (0,1)  的值当做s[1]
    double sum = 0;
    for (int i = 2;i <200;++ i )
        s[i] = s[i-1] + sqrt(2+0.0)*(i-1) + sqrt((i-1)*(i-1)+i*i +0.0);
}


int main()
{
    ini();
    int x1,x2,y1,y2,n;
    cin >> n;
    while (n--) {
        int  d1,d2;
        cin >> x1 >> y1 >> x2 >> y2;
        d1 = x1 + y1;
        d2 = x2 + y2;
        printf("%.3lf\n",fabs(s[d1] - s[d2] + (x1 - x2)*sqrt(2 + 0.0)));


    }
    return 0;
}


0 0
原创粉丝点击