【UVA】10375-Choose and divide(组合数化简)
2014-08-12 08:59
369 查看
根据定义每个数肯定能化成这样的形式:
p1^a * p2 ^ b * p3 ^ c ……,这里 p1,p2,……pn都是素数
先快速打出素数表,之后统计没个素数出现个个数就可以了
p1^a * p2 ^ b * p3 ^ c ……,这里 p1,p2,……pn都是素数
先快速打出素数表,之后统计没个素数出现个个数就可以了
14024226 | 10375 | Choose and divide | Accepted | C++ | 0.325 | 2014-08-12 00:57:06 |
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<vector> #include<stack> #include<queue> #include<map> #include<set> #include<list> #include<cmath> #include<string> #include<sstream> #include<ctime> using namespace std; #define _PI acos(-1.0) #define INF (1 << 10) #define esp 1e-6 typedef long long LL; typedef unsigned long long ULL; typedef pair<int,int> pill; /*=========================================== ===========================================*/ #define MAXD 10000 + 1 vector<int>Prime; int ans[MAXD]; void Get_Prime(){ int vis[MAXD] = {0}; for(int i = 2 ; i < MAXD ; i++)if(!vis[i]){ Prime.push_back(i); for(int j = i * i ; j < MAXD ; j += i) vis[j] = 1; } return ; } void _solve(int n,int d){ for(int i = 0 ; i < Prime.size() ; i++){ if(n % Prime[i] == 0){ ans[Prime[i]] += d; n = n / Prime[i]; i --; } if(n == 1) break; } return ; } void _add(int n , int d){ for(int i = 2 ; i <= n ; i++){ _solve(i,d); } return ; } int main(){ int p,q,r,s; Get_Prime(); while(scanf("%d%d%d%d",&p,&q,&r,&s) != EOF){ memset(ans,0,sizeof(ans)); _add(p,1); _add(q,-1); _add(p - q, -1); _add(r,-1); _add(s,1); _add(r - s,1); double _ans = 1; for(int i = 0 ; i < Prime.size() ; i++){ _ans = _ans * 1.0 * pow(1.0 * Prime[i],1.0 * ans[Prime[i]]); } printf("%.5f\n",_ans); } return 0; }
相关文章推荐
- UVA 10375 - Choose and divide【唯一分解定理】
- uva 10375 选择与除法
- 【暑假】[数学]UVa 10375 Choose and divide
- uva 10375 - Choose and divide(组合数)
- UVA - 10375 Choose and divide 化简
- uva 10375(数论)
- UVA 10375 选择与除法
- UVA 10375 Choose and divide 计算组合数C(p,q)/C(r,s)。
- UVa 10375 选择与除法(唯一分解定理)
- UVA10375唯一分解定理运用
- uva 10375 分解质因数算指数
- Choose and divide UVA - 10375
- UVA - 10375 - Choose and divide (组合数)
- UVa10375 - Choose and divide
- 筛法求素数,组合数公式,唯一分解定理(选择与除法,uva 10375)
- UVA 10375 (13.11.07)
- UVA10375唯一分解定理
- UVa-10375 Choose and divide 【唯一分解定理】
- UVA 10375 Choose and divide
- Choose and divide UVA - 10375