【poj1005】I Think I Need a Houseboat 题解&代码(c++)

来源:互联网 发布:软件编程是什么 编辑:程序博客网 时间:2024/05/22 15:15

题目链接


http://poj.org/problem?id=1005


题解


借助翻译工具终于是把题意看懂了,出题人不给数据范围这点很烦啊,个人在做的时候不小心忘记陆地是半圆形消失的,算半径时出了错,真的是马虎啊。因为不知道数据范围所以二分做的,想了想也只有这样最快了吧。


代码


#include<iostream>#include<algorithm>#include<stdio.h>using namespace std;int n,a[100005];double x,y;int main(){    scanf("%d",&n);    for (int i=1;i<=n;i++)    {        cin>>x>>y;        int ans=1,l=1,r=1000;        double dis=x*x+y*y;        while(l<=r)        {            int mid=(l+r)/2;            double tmp=(double)mid*100.0/3.1415;            if (dis>tmp)            l=mid+1;            else            {                ans=mid;                r=mid-1;            }        }        a[i]=ans;    }    for (int i=1;i<=n;i++)    printf("Property %d: This property will begin eroding in year %d.\n",i,a[i]);    printf("END OF OUTPUT.\n");}