hdu 1695 莫比乌斯反演
来源:互联网 发布:.net core cms 编辑:程序博客网 时间:2024/05/17 22:09
GCD
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8482 Accepted Submission(s): 3152
Problem Description
Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y) = k. GCD(x, y) means the greatest common divisor of x and y. Since the number of choices may be very large, you're only required to output the total number of different number pairs.
Please notice that, (x=5, y=7) and (x=7, y=5) are considered to be the same.
Yoiu can assume that a = c = 1 in all test cases.
Please notice that, (x=5, y=7) and (x=7, y=5) are considered to be the same.
Yoiu can assume that a = c = 1 in all test cases.
Input
The input consists of several test cases. The first line of the input is the number of the cases. There are no more than 3,000 cases.
Each case contains five integers: a, b, c, d, k, 0 < a <= b <= 100,000, 0 < c <= d <= 100,000, 0 <= k <= 100,000, as described above.
Each case contains five integers: a, b, c, d, k, 0 < a <= b <= 100,000, 0 < c <= d <= 100,000, 0 <= k <= 100,000, as described above.
Output
For each test case, print the number of choices. Use the format in the example.
Sample Input
21 3 1 5 11 11014 1 14409 9
Sample Output
Case 1: 9Case 2: 736427HintFor the first sample input, all the 9 pairs of numbers are (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 5), (3, 4), (3, 5).莫比乌斯反演资料:
http://wenku.baidu.com/view/542961fdba0d4a7302763ad5.html
http://baike.baidu.com/link?url=1qQ-hkgOwDJAH4xyRcEQVoOTmHbiRCyZZ-hEJxRBQO8G0OurXNr6Rh6pYj9fhySI0MY2RKpcaSPV9X75mQv0hK
#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>#include<set>#include <queue>#include<algorithm>const double PI = acos(-1.0);using namespace std;int mu[100005], vis[100005], prime[100005];void Mobuls(){memset(vis, 0 ,sizeof(vis));mu[1] = 1;int top = 0;for(int i = 2; i <= 100000; ++ i){if(!vis[i]){prime[top ++ ] = i;mu[i] = -1;}for(int j = 0; j < top; ++ j){if(i * prime[j] > 100000)break;vis[i * prime[j]] = 1;if(i % prime[j] == 0){mu[i * prime[j]] = 0;break;}elsemu[i * prime[j]] = -mu[i];}}}int main(){int n, a, b, c, d, k, i, j;int t = 1;scanf("%d", &n);Mobuls();while(n --){scanf("%d%d%d%d%d", &a, &b, &c, &d, &k);if(k == 0){printf("Case %d: 0\n", t ++);continue;}b /= k;d /= k;long long ans1 = 0, ans2 = 0;for(i = 1; i <= max(b, d); ++ i)ans1 += (long long) mu[i] * (b / i) * (d / i);for(i = 1; i <= min(b, d); ++ i)ans2 += (long long) mu[i] * (min(b, d) / i) * (min(b, d) / i);printf("Case %d: %lld\n",t ++, ans1 - ans2 / 2);}}
0 0
- hdu 1695 莫比乌斯反演
- hdu 1695 莫比乌斯反演
- hdu 1695 莫比乌斯反演
- hdu 1695 莫比乌斯反演
- HDU 1695 莫比乌斯反演
- hdu 1695 莫比乌斯反演
- hdu 5072 莫比乌斯反演
- HDU 5656 (莫比乌斯反演)
- HDU 4675 (莫比乌斯反演)
- hdu 5212(莫比乌斯反演)
- HDU 6053 莫比乌斯反演
- hdu 6053-莫比乌斯反演
- HDU 6134 莫比乌斯反演
- HDU 6134 莫比乌斯反演
- hdu 6134(莫比乌斯反演)
- HDU 6053 莫比乌斯反演
- HDU-1695-GCD(莫比乌斯反演)
- hdu 1695 GCD(莫比乌斯反演)
- java android面试分析,不断更新中....
- RxJava转换操作符window
- code vs3099 敲7
- mfc如何改变静态文本框字体大小及mfc按钮问题用CButtonST进行图形按钮处理
- 好多年不来这个空间了,我是不是该把这些年的haskell和lisp心得给写上
- hdu 1695 莫比乌斯反演
- cocos2d-x Lua绑定C++ 自定义类到Runtime(Lua-binding)
- 制作了一个简单的viewhelper,用于在滑动listview时,隐藏顶部指定区域,下拉时再展示
- 手机越用越卡?如果连这些都不知道,卡死也活该!
- Java开发中的23种设计模式详解
- NYOJ 孪生素数问题
- Atitit. atiOrder Order 订单管理框架的设计
- Java生产者消费者程序模型
- 论文笔记 《Maxout Networks》 && 《Network In Network》