P1577 切绳子
Posted njbw7782
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1577 切绳子相关的知识,希望对你有一定的参考价值。
二分答案
#include<cstdio> using namespace std; double a[10005]; int b[10005], n, k; bool judge(int x) { int s = 0; for(int i = 0; i < n; i++) s += b[i] / x; return s >= k; } int main() { int l = 0, r = 10000000, mid; scanf("%d %d", &n, &k); for(int i = 0; i < n; i++) scanf("%lf", &a[i]), b[i] = a[i] * 100; while(l <= r) { mid = (l + r) >> 1; if(!mid)//l=0, r=0会死循环 break; if(judge(mid)) l = mid + 1; else r = mid - 1; } printf("%.2f", r / 100.0); return 0; }
以上是关于P1577 切绳子的主要内容,如果未能解决你的问题,请参考以下文章