20分剪枝玄关求调
查看原帖
20分剪枝玄关求调
1300710
yuxusheng楼主2024/5/10 19:39
#include <bits/stdc++.h>
using namespace std;
int m, n, x, y, ans = 0;
double lim;
void dg(int dep, double sum, int minn)
{
	if(sum - lim > 1e-8)return;
	if(dep > n)
	{
		if(lim - sum < 1e-10) ans++;
		return;
	}
	for(int i = minn; i <= m; i++)
	{
		double now = sum + 1.0 / i;
		dg(dep + 1, now, i + 1);
	}
}

int main()
{
	cin >> n >> m >> x >> y;
	lim = x * 1.0 / y;
	dg(1, 0.0, 1);
	cout << ans;
	return 0;
}
2024/5/10 19:39
加载中...