LYDSY 1224
题目大意
暂无
题目解法
暂无
RTFC
#include <cstdio>
const double eps = 1e-10;
int n, m, x, y, ans;
double target, sum[55];
void dfs(int pos, int cnt, double cur)
{
double mx = cur + sum[pos - 1 + n - cnt] - sum[pos - 1];
double mn = cur + sum[m] - sum[m - (n - cnt)];
if (mn - target > eps || mx - target < -eps) return;
if (cnt == n) ans++;
if (cnt == n || pos == m + 1) return;
dfs(pos + 1, cnt, cur);
dfs(pos + 1, cnt + 1, cur + 1.0 / pos);
}
int main()
{
scanf("%d%d%d%d", &n, &m, &x, &y);
target = 1.0 * x / y;
for (int i = 1; i <= m; i++)
sum[i] = sum[i - 1] + 1.0 / i;
dfs(1, 0, 0.0);
printf("%d", ans);
return 0;
}