题目
题目描述
有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长?
答案保留到小数点后2位(直接舍掉2为后的小数)。
输入
第一行两个整数N和K,接下来N行,描述了每条绳子的长度Li。
输出
切割后每条绳子的最大长度。
样例输入
4 11
8.02
7.43
4.57
5.39
样例输出
2.00
提示
对于100%的数据 0<Li<=100000.00 0<n<=10000 0<k<=10000
分析题目
最近在做二分题解,作为一道经典的二分题,切绳子是一定要会的。
这道题与木材加工有些相似,但这里出现了浮点数,又要比木材加工复杂一些。
又因为它最多只有两个小数点,所以,我们可以直接把输入的数乘100,把浮点数变为整数就行了。
当然,输出时又要除100,再变为浮点数。
double ans=0;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
{
scanf("%lf",&a[i]);
a[i]*=100;
ans+=a[i];
}
这里我用了一个特判