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

题意:

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

思路:

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

 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
#include<queue>
#include<cmath>
#include<map>
using namespace std; const int maxn=+; int primes[maxn];
int e[maxn];
int vis[maxn];
int p,q,r,s;
int cnt; void get_primes()
{
memset(vis,,sizeof(vis));
int m=sqrt(maxn+0.5);
for(int i=;i<=m;++i) if(!vis[i])
for(int j=i*i;j<=maxn;j+=i) vis[j]=;
cnt=;
for(int i=;i<=maxn;++i){
if(!vis[i])
primes[cnt++]=i;
}
} void add_integer(int n,int d )
{
for(int i=;i<cnt;i++)
{
while(n%primes[i]==)
{
n/=primes[i];
e[i]+=d;
}
if(n==) break;
}
} void update_e(int n,int d)
{
for(int i=;i<=n;i++)
add_integer(i,d);
} int main()
{
//freopen("D:\\input.txt","r",stdin);
get_primes();
while(~scanf("%d%d%d%d",&p,&q,&r,&s))
{
memset(e,,sizeof(e));
update_e(p,);
update_e(q,-);
update_e(p-q,-);
update_e(s,);
update_e(r-s,);
update_e(r,-);
double ans=;
for(int i=;i<cnt;i++)
{
ans*=pow(primes[i],e[i]);
}
printf("%.5f\n",ans);
}
return ;
}

UVa 10375 选择与除法(唯一分解定理)的更多相关文章

  1. Uva 10375 选择与除法 唯一分解定理

    题目链接:https://vjudge.net/contest/156903#problem/E 题意:已知 求:C(p,q)/C(r,s) 其中p,q,r,s都是10^4,硬算是肯定超数据类型的. ...

  2. UVA - 10375 Choose and divide[唯一分解定理]

    UVA - 10375 Choose and divide Choose and divide Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  3. UVA.10791 Minimum Sum LCM (唯一分解定理)

    UVA.10791 Minimum Sum LCM (唯一分解定理) 题意分析 也是利用唯一分解定理,但是要注意,分解的时候要循环(sqrt(num+1))次,并要对最后的num结果进行判断. 代码总 ...

  4. UVa10375:选择与除法(唯一分解定理)

    The binomial coefficient C(m,n) is defined as Given four natural numbers p, q, r, and s, compute the th ...

  5. UVA 10375 Choose and divide【唯一分解定理】

    题意:求C(p,q)/C(r,s),4个数均小于10000,答案不大于10^8 思路:根据答案的范围猜测,不需要使用高精度.根据唯一分解定理,每一个数都可以分解成若干素数相乘.先求出10000以内的所 ...

  6. Irrelevant Elements UVA - 1635 二项式定理+组合数公式+素数筛+唯一分解定理

    /** 题目:Irrelevant Elements UVA - 1635 链接:https://vjudge.net/problem/UVA-1635 题意:給定n,m;題意抽象成(a+b)^(n- ...

  7. UVa 10791 Minimum Sum LCM【唯一分解定理】

    题意:给出n,求至少两个正整数,使得它们的最小公倍数为n,且这些整数的和最小 看的紫书--- 用唯一分解定理,n=(a1)^p1*(a2)^p2---*(ak)^pk,当每一个(ak)^pk作为一个单 ...

  8. 唯一分解定理(以Minimun Sum LCM UVa 10791为例)

    唯一分解定理是指任何正整数都可以分解为一些素数的幂之积,即任意正整数n=a1^p1*a2^p2*...*ai^pi:其中ai为任意素数,pi为任意整数. 题意是输入整数n,求至少2个整数,使得它们的最 ...

  9. Uva 10791 最小公倍数的最小和 唯一分解定理

    题目链接:https://vjudge.net/contest/156903#problem/C 题意:给一个数 n ,求至少 2个正整数,使得他们的最小公倍数为 n ,而且这些数之和最小. 分析: ...

随机推荐

  1. PHP一句话木马小总结与SQL语句写一句话木马

    一.基础类的一句话--功能仅限于验证漏洞了,实际中太容易被查出出来: <?php @eval($_GET["code"])?> <?php @system($_P ...

  2. 【BZOJ3518】点组计数 欧拉函数

    [BZOJ3518]点组计数 Description 平面上摆放着一个n*m的点阵(下图所示是一个3*4的点阵).Curimit想知道有多少三点组(a,b,c)满足以a,b,c三点共线.这里a,b,c ...

  3. 【BZOJ5085】最大 鸽巢原理

    [BZOJ5085]最大 Description 给你一个n×m的矩形,要你找一个子矩形,价值为左上角左下角右上角右下角这四个数的最小值,要你最大化矩形的价值. Input 第一行两个数n,m,接下来 ...

  4. [算法] N 皇后

    N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行.同一列.同一斜线上的皇后都会自动攻击). 一. 求解N皇后问题是算法中回溯法应用的一个经典案例 回溯算 ...

  5. jfinal怎么给model增加自定义的字段作为DTO?

    简单的可以使用: List<Record> docList = myService.findSuperviseFile(type,id); for(Record record : docL ...

  6. org.apache.commons.beanutils.BeanUtils的常见用法

    import org.apache.commons.beanutils.BeanUtils BeanUtils1. public static void copyProperty(Object bea ...

  7. windows系统常用软件及配置介绍

    常用工具 ,,,, 开发工具 ,,, 快捷键 ... 等等 vvv 等等

  8. backup与recover

    完全恢复: 1.关闭DB2.拷贝文件3.启动DB.<出错>startup mount4.recover database until cancel using backup control ...

  9. linux启动

    启动顺序:POST加电自检——加载BIOS——读取MBR——GRUB引导——加载kernel——rc0~rc6级别启动——加载内核模块——加载rc.sysinit——inittab运行级别——读取rc ...

  10. Spring-Boot整合freemarker引入静态资源css、js等

    一.概述 springboot 默认静态资源访问的路径为:/static 或 /public 或 /resources 或 /META-INF/resources 这样的地址都必须定义在src/mai ...