Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
128592 蔡悠然 切割金属棍 C++ 解答错误 0 3 MS 188 KB 648 2024-01-25 20:59:53

Tests(0/10):


#include<cstdio> int a[101]; //思路:运用二分法 int countK(int N,int l) { int k=0; for(int i=0;i<N;i++) k+=a[i]/l; return k; } int binarySolve(int N,int K)//K为要求的木棒个数 { int mid; int left=0,right=a[0]; for(int i=1;i<N;i++) { if(a[i]>right) right=a[i]; } while(left<right){ mid=(left+right)/2; if(K>countK(N,mid)) right=mid; else left=mid+1; } return left-1; } int main() { int n; int K; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } scanf("%d",&K); printf("%d\n",binarySolve(n,K)); return 0; }


测评信息: