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;
}
代码:
#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;
}
相关文章推荐
- 北大ACM1064——Cable master
- PKU 1064 Cable master
- [ACM] poj 1064 Cable master (二进制搜索)
- [ACM] poj 1064 Cable master (二分查找)
- pku acm 1064
- [ACM] poj 1064 Cable master (二分查找)
- PKU 1064 Cable master
- [ACM] poj 1064 Cable master (二分查找)
- ACM-PKU
- pku acm 1065
- poj 1064 Cable master
- Pku acm 1125 Stockbroker Grapevine 动态规划题目解题报告(十九)
- pku 3436 ACM Computer Factory ——最大流 EK
- acm pku 1007 DNA Sorting
- poj 1064 Cable master
- PKU ACM 1125
- Pku acm 1458 Common Subsequence 题意分析
- PKU ACM 1045
- acm pku 1045 Bode Plot的计算过程
- 滑雪-PKU ACM 1088