2 条题解
-
1
#include<bits/stdc++.h> using namespace std; int n,k,lln[1000010]; double tmp; bool jj(int x){ int cnt=0; for(int i=1;i<=n;i++){ cnt+=(lln[i]/x); } return cnt>=k; } int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=n;i++){ scanf("%lf",&tmp); lln[i]=tmp*100; } int l=0,r=1<<30; double ans=0; while(l<=r){ int mid=l+(r-l)/2; if(mid==0) break; if(jj(mid)){ ans=mid; l=mid+1; } else { r=mid-1; } } printf("%.2f",ans/100.0); return 0; }
-
1
C :
#include <stdio.h> #include <stdlib.h> int n,k,sa,sb,i,l,r,mid,s; #define max(a,b) a>b?a:b int a[10010]; int check(int x) { s=0; for(i=1;i<=n;i++) s+=a[i]/x; return s<k; } int main() { scanf("%d %d",&n,&k); r=-1; for(i=1;i<=n;i++) { scanf("%d.%2d",&sa,&sb); a[i]=sa*100+sb; r=max(r,a[i]); } l=1; while(l<=r) { mid=(l+r)>>1; if(check(mid)) r=--mid; else l=++mid; } printf("%d.%d%d",(l-1)/100,(l-1)%100/10,(l-1)%10); return 0; }
C++ :
undefined
Pascal :
undefined
- 1
信息
- ID
- 754
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 84
- 已通过
- 24
- 上传者