uva 10375 选择与除法
2015-03-03 22:07
337 查看
入门经典例题,就不多少了。
/*********************************************** * Author: fisty * Created Time: 2015/2/18 13:44:03 * File Name : uva10375.cpp *********************************************** */ #include <iostream> #include <cstring> #include <deque> #include <cmath> #include <queue> #include <stack> #include <list> #include <map> #include <set> #include <string> #include <vector> #include <cstdio> #include <bitset> #include <algorithm> using namespace std; #define Debug(x) cout << #x << " " << x <<endl #define Memset(x, a) memset(x, a, sizeof(x)) const int INF = 0x3f3f3f3f; typedef long long LL; typedef pair<int, int> P; #define FOR(i, a, b) for(int i = a;i < b; i++) vector<int> prime; #define MAX_N 10010 int e[MAX_N]; void is_prime(){ int n = 10000; int vis[MAX_N]; Memset(vis, 0); int m = sqrt(n+0.5); for(int i = 2;i <= m; i++){ if(!vis[i]) for(int j = i*i;j <= n; j += i){ vis[j] = 1; } } for(int i = 2;i <= n; i++){ if(!vis[i]){ prime.push_back(i); } } } void add_intger(int n, int d){ //d = 1 为乘 d 为-1 为除 for(int i = 0;i < prime.size(); i++){ while(n % prime[i] == 0){ n /= prime[i]; e[i] += d; } if(n == 1) break; } } void add_factirial(int n,int d){ for(int i = 1;i <= n; i++){ add_intger(i, d); } } int main(){ //freopen("in.cpp", "r", stdin); int p, q, r, s; is_prime(); while(~scanf("%d%d%d%d", &p, &q, &r, &s)){ Memset(e, 0); add_factirial(p, 1); add_factirial(q, -1); add_factirial(p-q, -1); add_factirial(r, -1); add_factirial(s, 1); add_factirial(r-s, 1); double ans = 1; for(int i = 0;i < prime.size(); i++){ ans *= (double)pow((double)prime[i], e[i]); } printf("%.5lf\n", ans); } return 0; }
相关文章推荐
- 【uva 10375】选择与除法
- UVA 10375 选择与除法
- uva10375 选择与除法 唯一分解定理
- 筛法求素数,组合数公式,唯一分解定理(选择与除法,uva 10375)
- UVa 10375 选择与除法(唯一分解定理)
- Uva 10375 选择与除法 唯一分解定理
- 素数筛选法 O(n) O(nlgn) uva10357 选择与除法
- 7_1 除法(UVa725)<选择合适的枚举对象>
- UVA 10375 Choose and divide
- UVa 10375 Choose and Divide
- uva 10375 Choose and divide
- 除法(Division, UVa 725)
- UVA - 10375 Choose and divide
- UVA10375唯一分解定理运用
- UVa 725 Division(除法)
- 除法(Division, UVa 725)
- uva 10375 质数筛选 质数分解 lrj-P316
- uva 725 Division(除法)暴力法!
- uva10375 - Choose and divide(选择与除法)
- UVA 10375 Choose and divide(数论)