二分求调QWQ
查看原帖
二分求调QWQ
857626
_RainCappuccino_楼主2023/10/3 13:21

目的是找到一个但单调递减vector中,最大的小于 a[x] 的数,并求 pospos 到 尾部元素的和(用另一个前缀和 vector 储存)

	int le = dp[x] - 1;
	int l = 0, r = rec[le].size() - 1;
	if (r < 0) return 1;
	reverse(rec[le].begin(), rec[le].end());
	while (l < r) {
		int mid = (l + r) / 2;
		if (rec[le][mid] >= a[x]) r = mid;
		else l = mid + 1;
	}
	r = rec[le].size() - 1 - r;
	cout << "R:" << r << endl;
	reverse(rec[le].begin(), rec[le].end());
	return (sum[le].back() - (r ? sum[le][r - 1] : 0)) % mod;
2023/10/3 13:21
加载中...