玄关wa on #2
查看原帖
玄关wa on #2
1104479
zombiell810975楼主2024/6/12 19:43

蒟蒻求调,wa on #2

#include<bits/stdc++.h>
using namespace std;
int m,n,o[13],ans=0;
double a,b;
double anst;
bool mn[51]={0};
void dfs(int x,double sum,int mint){
	if(sum-anst>1e-10) return ;
	if(x==n+1){
		if(fabs(sum-anst)<1e-10) ans++;	
		else return ;	 
	}
	if(sum + 1/double(m)*double(n+1-x) > anst+1e-10) return ;
	if(sum + 1/(double(mint+1))*double(n+1-x) <anst-1e-10) return ;
	for(int i=mint;i<=m;i++){
		double temp=double(i);
		if((1/temp)-anst>1e-10) continue;
		if(mn[i]==0) {
			mn[i]=1;
			dfs(x+1,sum+double(1.0/temp),i);
			mn[i]=0;	
		}
	}
	return ;
}
int main(){
	cin>>n>>m>>a>>b;
	anst=a/b;
	dfs(1,0.0,1);
	cout<<ans;
	return 0;
}
2024/6/12 19:43
加载中...