求救,8分

P1577 切绳子

。。。 首先mid定义为int型。。 再者r的初值取了最小值导致二分范围太小 还有这题卡精度
by 派大那个星 @ 2019-01-17 16:12:06


```#include<bits/stdc++.h> using namespace std; int n,k; char s[105]; double a[10010],sum; bool check(double c){ int b=0; for(int i=1;i<=n;i++){ b+=int(a[i]/c); } if(b<k){ return false; } return true; } int main() { double l=0,r=1147483.00; scanf("%d%d",&n,&k); for(int i=1;i<=n;i++){ scanf("%lf",&a[i]); sum+=a[i]; } r=sum; double mid; while(r-l>0.0001){ mid=(l+r)/2.0; if(!check(mid)){ r=mid; } else l=mid; } sprintf(s,"%.3f",l); for(int i=0;i<strlen(s);++i){ if(i==strlen(s)-1)break; printf("%c",s[i]); } }```
by 派大那个星 @ 2019-01-17 16:12:26


*上100就行了
by K0stlin @ 2019-01-17 16:12:38


@[派大那个星](/space/show?uid=86874) 谢谢
by Yoo_ @ 2019-01-17 18:20:13


@[27__tmi](/space/show?uid=114830) 谢谢
by Yoo_ @ 2019-01-17 18:20:19


|