zoukankan      html  css  js  c++  java
  • UVa 10375 选择与除法(唯一分解定理)

    https://vjudge.net/problem/UVA-10375

    题意:

    输入整数p,q,r,s,计算C(p,q)/C(r,s)。

    思路:

    先打个素数表,然后用一个数组e来保存每个素数所对应的指数,最后相乘。

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 #include<cstdio>
     5 #include<vector>
     6 #include<queue>
     7 #include<cmath>
     8 #include<map>
     9 using namespace std;
    10 
    11 const int maxn=10000+5;
    12 
    13 int primes[maxn];
    14 int e[maxn];
    15 int vis[maxn];
    16 int p,q,r,s;
    17 int cnt;
    18 
    19 void get_primes()
    20 {
    21     memset(vis,0,sizeof(vis));
    22     int m=sqrt(maxn+0.5);
    23     for(int i=2;i<=m;++i)  if(!vis[i])
    24         for(int j=i*i;j<=maxn;j+=i) vis[j]=1;
    25     cnt=0;
    26     for(int i=2;i<=maxn;++i){
    27         if(!vis[i])
    28             primes[cnt++]=i;
    29     }
    30 }
    31 
    32 void add_integer(int n,int d )
    33 {
    34     for(int i=0;i<cnt;i++)
    35         {
    36         while(n%primes[i]==0)
    37         {
    38             n/=primes[i];
    39             e[i]+=d;
    40         }
    41         if(n==1) break;
    42     }
    43 }
    44 
    45 void update_e(int n,int d)
    46 {
    47     for(int i=1;i<=n;i++)
    48         add_integer(i,d);
    49 }
    50 
    51 int main()
    52 {
    53     //freopen("D:\input.txt","r",stdin);
    54     get_primes();
    55     while(~scanf("%d%d%d%d",&p,&q,&r,&s))
    56     {
    57         memset(e,0,sizeof(e));
    58         update_e(p,1);
    59         update_e(q,-1);
    60         update_e(p-q,-1);
    61         update_e(s,1);
    62         update_e(r-s,1);
    63         update_e(r,-1);
    64         double ans=1;
    65         for(int i=0;i<cnt;i++)
    66         {
    67             ans*=pow(primes[i],e[i]);
    68         }
    69         printf("%.5f
    ",ans);
    70     }
    71     return 0;
    72 }
  • 相关阅读:
    Electron踩坑记录
    TypeScript实现设计模式——生成器模式
    在express中使用ES7装饰器构建路由
    微信小程序下载文件(非图片),并校验扩展名。
    防抖与节流
    yarn
    spark
    docker php-fpm中安装GD库
    thinkphp6 多应用路由遇坑记
    CentOS 7 开启SSH远程登录
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/6733361.html
Copyright © 2011-2022 走看看