随笔 - 531  文章 - 0  评论 - 3  阅读 - 10215 

求C(i,j)/ C(u,v)

公式化简

 

筛出所有质数

除法的时候: 因数分解, 求对每个质数的个数的贡献

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
 #include <cstring>
 #include <cmath>
 #include <iomanip>
 #include <vector>
 using namespace std;
  const int M =1e4+3;
int vis[M],p,q,s,r;
vector<int> prm;
int A[M];
 
void init(int top){
   int i,j;
   for(i=2;i<=top;i++)
    if(vis[i]==0){
       prm.push_back(i);
       for(j=i*2;j<=top;j+=i) vis[j]=1;
    }
}
 
void ADD(int x,int v){
   for(int i=0;i<prm.size();i++){
       while(x%prm[i]==0){
           A[i]+=v;
           x/=prm[i];
       }
       if(x==1) break;
   }
}
void help(int x,int v){
   for(int i=1;i<=x;i++) ADD(i,v);
}
void solve(){
   help(p,1),help(r-s,1),help(s,1),
   help(p-q,-1),help(q,-1),help(r,-1);
   double ans=1;
   for(int i=0;i<prm.size();i++){
       ans*=pow(double(prm[i]),A[i]);
   }
   printf("%.5lf\n",ans);
}
signed main(){
   init(1e4);
   while(scanf("%d%d%d%d",&p,&q,&r,&s)==4){
       memset(A,0,sizeof A);
       solve();
   }
}

 

posted on   towboat  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示