二分 WA 求调!
查看原帖
二分 WA 求调!
878013
_Supernova楼主2024/9/22 18:59
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
typedef unsigned long long ull;
typedef long long ll;
typedef pair <int, int> pii;
typedef pair <pii, int> piii;
typedef long double ld;
const int N = 2e5 + 5;
int T, n, x, y, numf, nums;
char s[N];
bool check(int cnt) {
	if ((y - nums) * cnt + numf >= x) return true;
	else return false;
}
int Solve(void) {
	int l = 0, r = x, ans = 0, mid = 0;
	while (l <= r) {
		mid = (l + r) >> 1;
		if (check(mid)) {
			r = mid - 1;
			ans = mid;
		}
		else l = mid + 1;
	}
	return ans;
}
int main(void) {
	cin.tie(0), cout.tie(0);
	cin >> T;
	while (T--) {
		cin >> n >> x >> y;
		numf = nums = 0;
		for (int i = 1; i <= n; ++i) {
			cin >> s[i];
			if (s[i] == 'F') ++numf;
			else ++nums;
		}
		if (numf >= x) {
			cout << 0 << '\n';
			continue;
		}
		cout << Solve() << '\n';
	}
	return 0;
}
2024/9/22 18:59
加载中...