zoukankan      html  css  js  c++  java
  • hdu 2073 无限的路

    http://acm.hdu.edu.cn/showproblem.php?pid=2073

    这是一道分段处理题,第一步先把斜率为1的线段处理好:  sum+=a*(a-1)*sqrt(2.0)/2;  第二步把线段斜率不为1的处理好:  for(int i=a;i>0;--i)  sum+=sqrt(i*i+(i-1)*(i-1)); 第三步把包括该点的线段加入: sum+=(a-y)*sqrt(2.0);  最后用前面的点与后面的点去差的绝对值。。。

    #include <stdio.h>

    #include <string.h>

    #include <stdlib.h>

    #include <math.h>

    int map[101][101];

    double sss(int x,int y)

    {

        double sum=0;

        int a=x+y;

        sum+=a*(a-1)*sqrt(2.0)/2;

        for(int i=a;i>0;--i)

        sum+=sqrt(i*i+(i-1)*(i-1));

        sum+=(a-y)*sqrt(2.0);

        return sum;

    }

    int main()

    {

        int n,x1,y1,x2,y2;

        double t;

        scanf("%d",&n);

        while(n--)

        {

            scanf("%d%d%d%d",&x1,&y1,&x2,&y2);

            t=fabs(sss(x1,y1)-sss(x2,y2));

            printf("%.3lf\n",t);     

        }

        //system("pause");

        return 0;

    }

  • 相关阅读:
    字符串练习题
    算法题
    readLine()
    grep家族
    java_IO
    集合框架
    常用类
    异常
    Mysql 图形工具 Navicat
    Mysql内置功能《一》流程控制
  • 原文地址:https://www.cnblogs.com/yuelingzhi/p/2131895.html
Copyright © 2011-2022 走看看