二分求助QAQ
查看原帖
二分求助QAQ
1620320
bingbing_1024楼主2025/1/15 00:38

为什么后面的二分如果改成if(s<=M)还有cout<<l<<endl;的话就只能得十分 题目给的输入输出案例都是对的QAQ

sort(q, q + n, cmp);

int l = 0, r = q[0];
while (l < r)
{
	int mid = l + r >> 1;
	s = 0;//!!!
	for (int i = 0; i < n; i++)
	{
		if (q[i] > mid) s += q[i] - mid;
		else break;
	}
	if (s < M) r = mid;

	else l = mid + 1;
}
cout << l-1 << endl;
return 0;

}

2025/1/15 00:38
加载中...