洛谷P2236 HNOI2002 彩票 [暴搜]
彩票
分析:
虽然题目标签上标的是Splay,但我一个蒟蒻至今也沒掌握平衡树,所以就索性一个暴搜,加一点剪枝就水过去了~
代码:
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<algorithm> #include<iostream> using namespace std; const double eps=1e-10; int n,m,X,Y,ans; double com; bool vis[51]; inline int read() { char ch=getchar();int num=0; while(ch<'0'||ch>'9') ch=getchar(); while(ch>='0'&&ch<='9'){ num=num*10+ch-'0'; ch=getchar();} return num; } inline double Fabs(double ka) {return ka>0?ka:-ka;} inline void dfs(int x,double num,int last) { if(num-com>eps)return; if(num+(double)(n-x+1)*1.0/(double)(last+1)+eps<com)return; if(num+(double)(n-x+1)*1.0/(double)m>eps+com)return; if(x==n+1){ if(Fabs(num-com)<=eps)ans++; return;} for(int i=last+1;i<=m;i++) if(!vis[i]){ vis[i]=true; dfs(x+1,num+1.0/(double)i,i); vis[i]=false; } return; } int main() { n=read();m=read();X=read();Y=read(); com=(double)X/(double)Y; dfs(1,0,0); printf("%d",ans); return 0; }
蒟蒻写博客不易,如果有误还请大佬们提出
如需转载,请署名作者并附上原文链接,蒟蒻非常感激
名称:HolseLee
博客地址:www.cnblogs.com/cytus
个人邮箱:1073133650@qq.com
如需转载,请署名作者并附上原文链接,蒟蒻非常感激
名称:HolseLee
博客地址:www.cnblogs.com/cytus
个人邮箱:1073133650@qq.com