UVA-10375

题意 :

输入p,q,r,s,求C(p,q)/C(r,s).

p,q,r,s<=10000;结果不超过1e8

代码:

//显然不能直接计算,考虑每个数都可以由若干个素数乘积得到,因此可以转化为 a1^x*a2^y*... 的形式,a为素数
//求1000以内的每个素数的贡献即每个素数的指数,分子的指数为正,分母的为负,然后再计算就简单了。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn=;
int prime[maxn],tot,w[maxn];
bool check[maxn];
void get_prime(){
memset(prime,,sizeof(prime));
tot=;
for(int i=;i<=;i++){
if(!check[i]) prime[++tot]=i;
for(int j=;j<=tot;j++){
if(i*prime[j]>) break;
check[i*prime[j]]=;
if(i%prime[j]==) break;
}
}
}
void solve(int x,int p){
for(int i=;i<=tot;i++){
if(x==) break;
while(x%prime[i]==){
w[i]+=p;
x/=prime[i];
}
}
}
void add(int x,int p){
for(int i=;i<=x;i++)
solve(i,p);
}
int main()
{
get_prime();
int p,q,r,s;
while(scanf("%d%d%d%d",&p,&q,&r,&s)==){
memset(w,,sizeof(w));
add(p,);
add(q,-);
add(p-q,-);
add(r,-);
add(s,);
add(r-s,);
double ans=;
for(int i=;i<=tot;i++){
ans*=pow(prime[i],w[i]);
}
printf("%.5lf\n",ans);
}
return ;
}

UVA-10375 数学的更多相关文章

  1. 【暑假】[数学]UVa 10375 Choose and divide

    UVa 10375 Choose and divide 题目: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19601 思路 ...

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

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

  3. UVA - 11181 数学

    UVA - 11181 题意: n个人去买东西,其中第i个人买东西的概率是p[i],最后只有r个人买了东西,求每个人实际买了东西的概率 代码: //在r个人买东西的概率下每个人买了东西的概率,这是条件 ...

  4. UVA - 1262 数学

    UVA - 1262 题意: 有两个6*5 的大写字母组成的矩阵,需要找出满足条件的字典序第k小的密码:密码中每个字母在两个矩阵的对应的同一列中都出现过 代码: // 先处理出来每一列可以取的字母,例 ...

  5. UVa 10375 - Choose and divide(唯一分解定理)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. uva 11762 数学期望+记忆化搜索

    题目大意:给一个正整数N,每次可以在不超过N的素数中随机选择一个P,如果P是N的约数,则把N变成N/p,否则N不变,问平均情况下需要多少次随机选择,才能把N变成1? 分析:根据数学期望的线性和全期望公 ...

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

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

  8. uva 10375

    /* 选择与除法_________________________________________________________________________________ #include & ...

  9. UVa 10943 (数学 递推) How do you add?

    将K个不超过N的非负整数加起来,使它们的和为N,一共有多少种方法. 设d(i, j)表示j个不超过i的非负整数之和为i的方法数. d(i, j) = sum{ d(k, j-1) | 0 ≤ k ≤ ...

  10. UVa 10375 (唯一分解定理) Choose and divide

    题意: 求组合数C(p, q) / C(r, s)结果保留5为小数. 分析: 先用筛法求出10000以内的质数,然后计算每个素数对应的指数,最后再根据指数计算答案. #include <cstd ...

随机推荐

  1. python错误记录

    在主函数里调用其他函数时形参顺序要一致 错例如下:

  2. centos下安装升级python到python3.5

    本文摘抄自:https://www.cnblogs.com/edward2013/p/5289056.html  请支持原版 CentOS7安装Python3.5   2. 安装Python的依赖包 ...

  3. FPGA的过去,现在和未来

    我们知道,相对于专业的ASIC,FPGA有上市时间和成本上的优势.另外,在大多数情况下,FPGA执行某些功能较之CPU上的软件操作更高效.这就是为什么我们认为它不但会运用在数据中心的服务器.交换器.存 ...

  4. 2018-2019-20172329 《Java软件结构与数据结构》第四周学习总结

    2018-2019-20172329 <Java软件结构与数据结构>第四周学习总结 经过这样一个国庆节的假期,心中只有一个想法,这个国庆假期放的,不如不放呢!! 教材学习内容总结 < ...

  5. Codeforces Beta Round #8 C. Looking for Order 状压dp

    题目链接: http://codeforces.com/problemset/problem/8/C C. Looking for Order time limit per test:4 second ...

  6. Eclipse添加Jquery和javascript的智能提示

    使用Eclipse写Jquery和Javascript代码的时候,是没有智能提示的.我们可以使用一个插件来解决这个问题. 安装完成后,Eclipse会自动重启.重启之后,我们在项目上右键,   根据自 ...

  7. lintcode-415-有效回文串

    415-有效回文串 给定一个字符串,判断其是否为一个回文串.只包含字母和数字,忽略大小写. 注意事项 你是否考虑过,字符串有可能是空字符串?这是面试过程中,面试官常常会问的问题. 在这个题目中,我们将 ...

  8. 单机安装 consul ui 对外提供服务

    Consul 安装启动ui,外网无法访问,应为Consul 默认绑定127.0.0.1 ,所以外网无法访问. 通过设置 -client 参数来设置     consul agent -server - ...

  9. spring表单—乱码解决方案

    1.POST方式提交 A.jsp页面POST方式提交表单 B.web.xml配置过滤器 <!-- spring过滤器解决乱码问题 --> <filter> <filter ...

  10. 第八次java笔记