和题解一样却只A一个,求dalao帮助

P1297 [国家集训队] 单选错位

- 关掉freopen - 二分时`r=mid` - r 最好在二分之前再加1 - check中的o最好换成long long - check 中的`line[i]>o` 改成 `line[i]>=o`
by Kanade @ 2017-11-09 23:19:50


```cpp #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,m;long long r=0, line[10010]; inline bool check(long long o) { long long tot=0; if(o==0) return 1; for(int i=1;i<=n;i++) { if(line[i]>=o) tot+=line[i]/o; if(tot>=m) return 1; } return 0; } int main() { // freopen("in.txt","r",stdin); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { double p; scanf("%lf",&p); p=p*100.00; line[i]=(long long) p; r+=line[i]; } sort(line+1,line+n+1); long long l=-1; r++; while(l+1<r) { long long mid=(l+r)>>1; if(!check(mid)) { r=mid; } else l=mid; } printf("%.2lf",(double)l/100.00); return 0; } ``` 已AC
by Kanade @ 2017-11-09 23:23:31


**和题解一样**~~却只A一个.~~ 为何?
by Anyexyz @ 2019-11-08 10:33:03


|