洛谷P1577 切绳子题解
2024-09-02 07:15:48
洛谷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分代码
最新文章
- Entity Framework教程(第二版)
- JavaScript 函数
- word20161217
- Java中从键盘中任意输入字符串,将其转换成数字后,并求和
- AFNetworking 3.0.4 的使用
- jmeter(一)基础介绍
- 玩转单元测试之Testing Spring MVC Controllers
- SQLServer 删除所有表的外键约束
- Magento Service Temporarily Unavailable解决方法
- 固定分隔符字符串与数组互转及ArrayList与数组(Array)互转
- javascript在页面head内动态插入style
- 阿里云服务器(Win 2008 R2 Standard)安装MSSM 2008 R2之1033和2052问题
- 桂电在线-转变成bootstrap版3(记录学习bootstrap)
- Android getResources的作用和须要注意点
- WINDOWS硬件通知应用程序的常方法(五种方式:异步过程调用APC,事件方式VxD,消息方式,异步I/O方式,事件方式WDM)
- leetcode第15题--3Sum
- jdk不同版本对String拼接的优化分析
- LINUX下C语言编程调用函数、链接头文件以及库文件
- 微信小程序点击返回顶层实现方法
- OpenCV读写摄像头并写入视频
热门文章
- 引用和自包含令牌(Reference Tokens and Introspection)
- BFC特性及其简单应用
- js流程控制语句(三)
- Nginx配置SSL实现HTTPS访问
- 网络编程之 tcp服务器(一)
- PHP 将json的int类型转换为string类型 解决php bigint转科学计数法的问题
- 元素定位方法之Uiautomator方法
- UVA572 Oil Deposits DFS求解
- EFK(Elasticsearch+Filebeat+Kibana)收集容器日志
- 【转】高性能网络编程7--tcp连接的内存使用