您的位置:首页 > 移动开发 > IOS开发

acm pku 1064 cable master

2011-08-23 10:33 405 查看
题目分析:就是简单的二分搜索问题。下界是一厘米,上届是输入的最大值。

代码:

#include <iostream>

#include <iomanip>

using namespace std;

const int MAX=10000;

int cables[MAX+1];

int n;

int cut(int len)

{

    int i,sum=0;

    for(i=0;i<n;++i)

        sum+=cables[i]/len;

       // cout<<sum<<endl;

    return sum;

}

int main()

{

   int m;

   double temp;

   cin>>n;

   cin>>m;

   int maxValue=0;

   for(int i=0;i<n;i++)

   {

        cin>>temp;

        //convert meter into centimeter

        cables[i]=int(temp*100);

        if(cables[i]>maxValue)

        {

            maxValue=cables[i];

        }

    }

    int left=1,right=maxValue,mid,ans=0;

    do

    {

        mid=(left+right)/2;

        if(cut(mid)<m)

        {

                right=mid-1;

        }

        else

        {

            ans=mid;

            left=mid+1;

        }

    }while(left<=right);

    cout<<setiosflags(ios::fixed)<<setprecision(2)<<(double)ans/100<<endl;

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ini ios