p2236
  • 板块学术版
  • 楼主cmpt_xiaoxiao
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/15 23:11
  • 上次更新2024/9/16 11:11:01
查看原帖
p2236
954694
cmpt_xiaoxiao楼主2024/9/15 23:11

rt,题目

shaber lz`s code:

#include<iostream>
#include<algorithm>
#include<cmath>
#define exp 1e-10
using namespace std;
long long n,m,ans;
int x,y;
double tgt;
double pre[1000001];
void dfs(int num,int cnt,double sum){
	if(sum>tgt+exp) return;
	if(cnt==n){
		if(abs(sum-tgt)<exp) ans++;
		return;
	}
	if(num>m) return;
	if(m-num+1+cnt<n) return;
	if(sum+pre[m]-pre[m-(n-cnt)]>tgt+exp) return;
	if(sum+pre[num+n-cnt-1]-pre[num-1]<tgt+exp) return;
	dfs(num+1,cnt,sum);
	dfs(num+1,cnt+1,sum+1.0/num);
}
int main(){
	cin>>n>>m>>x>>y;
	tgt=1.0*x/y;
	dfs(1,0,0);
	cout<<ans;
	return 0;
}

思虑就是前缀和优化一个dfs

2024/9/15 23:11
加载中...