首页 > 其他 > 详细

LightOJ 1072 - Calm Down 【二分】

时间:2015-08-28 07:19:24      阅读:318      评论:0      收藏:0      [点我收藏+]

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1072

解法:考虑角度的关系 二分r

代码:

#include <iostream>  
#include <algorithm>  
#include <set>  
#include <map>  
#include <string.h>  
#include <queue>  
#include <sstream>  
#include <stdio.h>  
#include <math.h>  
#include <stdlib.h>  

using namespace std;

const double PI = acos(-1);

double R;
int n;

bool is_ok(double mid)
{
    double y = R - mid;
    double tmp = asin(mid/y);
    int tn = (PI / tmp);
    if (tn >= n) return true;
    else return false;
}

int main()
{
    int cases = 1;
    int t;
    scanf("%d",&t);
    while (t--)
    {
        scanf("%lf %d", &R, &n);
        double left = 0, right = R;

        while (right - left > 1e-8)
        {
            double mid = (left + right) / 2;
            if (is_ok(mid)) left = mid;
            else right = mid;
        }
        printf("Case %d: %.8lf\n", cases++, right);
    }
    return 0;
}

版权声明:转载请注明出处。

LightOJ 1072 - Calm Down 【二分】

原文:http://blog.csdn.net/u014427196/article/details/48041909

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!