洛谷P1577 切绳子题解

题目描述

有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的

绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数)。

输入输出格式

输入格式:

第一行两个整数N和K,接下来N行,描述了每条绳子的长度Li。

输出格式:

切割后每条绳子的最大长度。

输入输出样例

输入样例#1:

4 11
8.02
7.43
4.57
5.39
输出样例#1:

2.00

说明

对于100%的数据 0<Li<=100000.00 0<n<=10000 0<k<=10000

解析

  本来以为是一个浮点型二分查找的题目,于是很开心的做,分数一直不一样,直到发现是一道卡精度的题目.处理这种题目一般是先乘一个大数,最后再去除以这个大数,来确保误差很小.另一个就是审题,题目中明确说是直接舍掉小数点后两位的数字,那么就按照题目,而不是四舍五入.

 #include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#define D double
#define E 1e-5
#define Max 10005
D l,r,a[Max];
const D eps=E;
int n,k;
bool check(D x)
{
int ans=;
for(int i = ; i <= n ; ++ i)
ans += (int)a[i] / x;
if(ans >= k) return true;
else return false;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i = ; i <= n ; ++ i) scanf("%lf",&a[i]);
l=,r=100000.0;
while(r-l > eps) {
D mid=(l+r) / ;
if(check(mid)) l=mid;
else r=mid;
}
printf("%.2lf",l);
return ;
}

47分代码

 #include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#define D double
#define E 1e-4
#define Max 10005
D l,r,a[Max];
const D eps=E;
int n,k;
bool check(D x)
{
int ans=;
for(int i = ; i <= n ; ++ i)
ans += (int)a[i] / x;
if(ans >= k) return true;
else return false;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i = ; i <= n ; ++ i) scanf("%lf",&a[i]),a[i]*=;
l=,r=100000000.0;
while(r-l > eps) {
D mid=(l+r) / ;
if(check(mid)) l=mid;
else r=mid;
}
printf("%.2lf",l / );
return ;
}

85分代码

 #include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#define D double
#define E 1e-4
#define Max 10005
D l,r,a[Max];
const D eps=E;
int n,k;
bool check(D x)
{
int ans=;
for(int i = ; i <= n ; ++ i)
ans += (int)a[i] / x;
if(ans >= k) return true;
else return false;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i = ; i <= n ; ++ i) scanf("%lf",&a[i]),a[i]*=;
l=,r=100000000.0;
while(r-l > eps) {
D mid=(l+r) / ;
if(check(mid)) l=mid;
else r=mid;
}
l /= ;
if(l-0.0049 > ) l -= 0.0049;
printf("%.2lf",l);
return ;
}

100分代码

最新文章

  1. Entity Framework教程(第二版)
  2. JavaScript 函数
  3. word20161217
  4. Java中从键盘中任意输入字符串,将其转换成数字后,并求和
  5. AFNetworking 3.0.4 的使用
  6. jmeter(一)基础介绍
  7. 玩转单元测试之Testing Spring MVC Controllers
  8. SQLServer 删除所有表的外键约束
  9. Magento Service Temporarily Unavailable解决方法
  10. 固定分隔符字符串与数组互转及ArrayList与数组(Array)互转
  11. javascript在页面head内动态插入style
  12. 阿里云服务器(Win 2008 R2 Standard)安装MSSM 2008 R2之1033和2052问题
  13. 桂电在线-转变成bootstrap版3(记录学习bootstrap)
  14. Android getResources的作用和须要注意点
  15. WINDOWS硬件通知应用程序的常方法(五种方式:异步过程调用APC,事件方式VxD,消息方式,异步I/O方式,事件方式WDM)
  16. leetcode第15题--3Sum
  17. jdk不同版本对String拼接的优化分析
  18. LINUX下C语言编程调用函数、链接头文件以及库文件
  19. 微信小程序点击返回顶层实现方法
  20. OpenCV读写摄像头并写入视频

热门文章

  1. 引用和自包含令牌(Reference Tokens and Introspection)
  2. BFC特性及其简单应用
  3. js流程控制语句(三)
  4. Nginx配置SSL实现HTTPS访问
  5. 网络编程之 tcp服务器(一)
  6. PHP 将json的int类型转换为string类型 解决php bigint转科学计数法的问题
  7. 元素定位方法之Uiautomator方法
  8. UVA572 Oil Deposits DFS求解
  9. EFK(Elasticsearch+Filebeat+Kibana)收集容器日志
  10. 【转】高性能网络编程7--tcp连接的内存使用