zoukankan      html  css  js  c++  java
  • HDU 1969 Pie

    二分答案+验证(这题精度卡的比较死)

    #include<stdio.h>
    #include<math.h>
    #define eps 1e-7
    const int ff = 11111;
    double a[ff];
    double pi = acos(-1.0);
    int main()
    {
        int sb;
        scanf("%d", &sb);
        while (sb--)
        {
            int m, n;
            scanf("%d%d", &m, &n);
            int i, j;
            double maxn = 0;
            for (i = 1; i <= m; i++)
            {
                scanf("%lf", &a[i]);
                a[i] = a[i] * a[i] * pi;
                if (a[i] > maxn) maxn = a[i];
            }
            double minn = 0;
            double midn = (minn + maxn) / 2.0;
            while (1)
            {
                if (maxn - minn < eps)
                {
                    printf("%.4lf
    ", midn);
                    break;
                }
                else
                {
                    int sum = 0, flag;
                    for (i = 1; i <= m; i++) sum += (int)((1.0*a[i] / midn));
                    if (sum >= n+1) flag = 1;
                    else flag = 0;
                    if (flag) minn = midn, midn = (minn + maxn) / 2.0;
                    else maxn = midn, midn = (minn + maxn) / 2.0;
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    sublime text3配置javascript运行环境
    TCP/IP协议详解
    markdown基本语法
    pytest失败重跑
    pytest参数化
    Httprunner初步学习
    基础面向对象
    面试题
    包和loggging模块
    常用模块
  • 原文地址:https://www.cnblogs.com/zufezzt/p/4677105.html
Copyright © 2011-2022 走看看