UVa 10375 Choose and divide

题目:

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19601

思路:

maxn=10000 如果计算maxn!再保存的话显然装不下。

但答案由阶乘的积或商组成,所以可以用唯一分解定理求解。大题思路就是把目前答案的质因子的指数用数组e保存,乘除都对e操作。

需要注意的是筛法求素数优化后的写法。

代码:

 #include<iostream>
#include<cstdio>
#include<iomanip>
#include<vector>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; const int maxn = + ; vector<int> primes;
void make_primes() {
int vis[maxn];
memset(vis,,sizeof(vis));
int m=sqrt(maxn+0.5);
for(int i=;i<=m;i++) if(!vis[i]) {
primes.push_back(i);
for(int j=i*i;j<maxn;j+=i) vis[j]=;
}
for(int i=m;i<maxn;i++) //primes分两部分 m之后也有质数 不能忽略
if(!vis[i]) primes.push_back(i);
}
/*
bool is_prime(int n) {
int m = floor(sqrt(n) + 0.5);
for(int a = 2; a <= m; a++)
if(n % a == 0) return false;
return true;
}
void make_primes(){
for(int i=2;i<=10000;i++)
if(is_prime(i)) primes.push_back(i);
}
*/ int e[maxn]; //第i个质数的指数 void add_integer(int x,int d){
for(int i=;i<primes.size();i++) {
int m=primes[i];
while(x%m==){
x/=m; e[i]+= d;
}
if(x==) break;
}
}
void add_factorial(int x,int d){
for(int i=;i<=x;i++)
add_integer(i,d);
} int main() {
make_primes(); //return primes
int p,q,r,s;
while(cin>>p>>q>>r>>s) {
memset(e,,sizeof(e));
//add_factorial(a,d); 向质子表中乘(a!)^d;
add_factorial(p,);
add_factorial(q,-);
add_factorial(p-q,-);
add_factorial(s,);
add_factorial(r-s,);
add_factorial(r,-); double ans=1.0;
for(int i=;i<primes.size();i++)
ans *= pow(primes[i],e[i]);
//cout<<setw(5)<<ans<<"\n";
printf("%.5lf\n",ans);
}
return ;
}

【暑假】[数学]UVa 10375 Choose and divide的更多相关文章

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

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

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

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

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

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

  4. UVA 10375 Choose and divide

    n! 分解素因子 快速幂 ei=[N/pi^1]+ [N/pi^2]+ …… + [N/pi^n]  其中[]为取整 ei 为数 N!中pi 因子的个数: #include <iostream& ...

  5. UVA 10375 Choose and divide(大数的表示)

    紫上给得比较奇怪,其实没有必要用唯一分解定理.我觉得这道题用唯一分解只是为了表示大数. 但是分解得到的幂,累乘的时候如果顺序很奇怪也可能溢出.其实直接边乘边除就好了.因为答案保证不会溢出, 设定一个精 ...

  6. uva10375 Choose and Divide(唯一分解定理)

    uva10375 Choose and Divide(唯一分解定理) 题意: 已知C(m,n)=m! / (n!*(m-n!)),输入整数p,q,r,s(p>=q,r>=s,p,q,r,s ...

  7. UVA10375 Choose and divide 质因数分解

    质因数分解: Choose and divide Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %l ...

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

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

  9. 【暑假】[数学]UVa 1262 Password

    UVa 1262  Password 题目: Password   Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld ...

随机推荐

  1. c++ 发布动态.so

    原文地址 代码改变世界 Posts - 105, Articles - 0, Comments - 1561 Cnblogs Dashboard Logout Home Contact Gallery ...

  2. _CrtIsValidPointer 问题

    从微软站点: 检查指针有效性下面的示例使用 _CrtIsValidPointer 验证给定的内存范围对于读或写是否有效. _ASSERTE(_CrtIsValidPointer( address, s ...

  3. c#做动态(gif)中文验证码

    无意中在国外论坛发现一个gif动画类,我使用它来制作了一个动态验证码 : 一:首先新建一个类库 1:新建AnimatedGifEncoder类 using System; using System.C ...

  4. ECSHOP报错误Deprecated: preg_replace(): The /e modifier is depr

    http://www.ecshoptemplate.com/article-1850.html

  5. Android学习 RadioButton

    http://blog.csdn.net/cuiran/article/details/45065477 https://www.baidu.com/s?wd=BadgeView%20RadioBut ...

  6. IText PdfPTable表格 单元的居中显示

    昨晚寻找了网上很多关于IText表格居中问题,他们其中的有些代码我即使复制上去生成的doc表格的文字都是不居中的,后来我自己找出了一种居中方式: 为PdfPCell对象添加paragraph对象,并将 ...

  7. 【疯狂Java讲义学习笔记】【数据类型与运算符】

    [学习笔记]1.8bit = 1byte,4byte = 1word.Java中的整型数据有byte(1字节),short(2字节),int(4字节),long(8字节).Java中的浮点数据有flo ...

  8. 关于批处理(bat)数据库备份

    @echo ******************************** @echo 数据库备份 @echo ******************************** @echo off ...

  9. JVM内存状况查看方法和分析工具

    Java本身提供了多种丰富的方法和工具来帮助开发人员查看和分析GC及JVM内存的状况,同时开源界和商业界也有一些工具可用于查看.分析GC及JVM内存的状况.通过这些分析,可以排查程序中内存泄露的问题及 ...

  10. UIWebView与JS的深度交互

    我要实现这样一个需求:按照本地的CSS文件展示一串网络获取的带HTML格式的只有body部分的文本,需要自己拼写完整的 HTML.除此之外,还需要禁用获取的HTML文本中自带的 < img &g ...