【HDU】1695 GCD
题意:x在[a,b]内,y在[c,d]内,求GCD(x,y)=k的个数,题目保证a=c=1。
由于GCD(x,y)=k,则GCD(x/k,y/k)=1。
那么只要求x在[1,b/k]内,y在[1,d/k]内的互质对数,(x,y)与(y,x)是等价的。
剩下的同【HDU】2841 Visible Trees。
1 #include<cstdio> 2 #include<vector> 3 #define MAXN 100010 4 typedef long long LL; 5 using namespace std; 6 vector<int> fac[MAXN]; 7 void Init() { 8 int i, j; 9 for (i = 0; i < MAXN; i++) 10 fac[i].clear(); 11 for (i = 2; i < MAXN; i++) { 12 if (fac[i].size()) 13 continue; 14 fac[i].push_back(i); 15 for (j = 2; i * j < MAXN; j++) 16 fac[i * j].push_back(i); 17 } 18 } 19 int NoPrime(int x, int &k, int t) { 20 int i, res; 21 res = 1; 22 for (i = k = 0; x; x >>= 1, i++) { 23 if (x & 1) { 24 k++; 25 res *= fac[t][i]; 26 } 27 } 28 return res; 29 } 30 int Prime(int x, int m) { 31 int i, j, t, res1, res2, tmp; 32 t = (int) fac[x].size(); 33 res1 = res2 = 0; 34 for (i = 1; i < (1 << t); i++) { 35 tmp = NoPrime(i, j, x); 36 if (j & 1) { 37 res1 += m / tmp; 38 res2 += x / tmp; 39 } else { 40 res1 -= m / tmp; 41 res2 -= x / tmp; 42 } 43 } 44 return m - res1 - (x - res2); 45 } 46 int main() { 47 int T, ca = 1; 48 int a, b, c, d, i, k; 49 LL ans; 50 Init(); 51 scanf("%d", &T); 52 while (T--) { 53 scanf("%d%d%d%d%d", &a, &b, &c, &d, &k); 54 printf("Case %d: ", ca++); 55 if (k == 0 || b < k || d < k) 56 puts("0"); 57 else { 58 b /= k, d /= k; 59 if (b > d) 60 swap(b, d); 61 ans = d; 62 for (i = 2; i <= b; i++) 63 ans += Prime(i, d); 64 printf("%I64d\n", ans); 65 } 66 } 67 return 0; 68 }
转载于:https://www.cnblogs.com/DrunBee/archive/2012/09/06/2673254.html
【HDU】1695 GCD相关推荐
- 【HDU】3441 Rotation
题意:给出A和C(1<=A,C<=10^9),所有满足B * B * K + 1 = A * A, (K >= 0)的B,构成边长为B的正方形,等角度的围绕在一个小正方形的周围.用C ...
- 【HDU】4942 Game on S♂play 线段树
传送门:[HDU]4942 Game on S♂play 题目分析:今天下午被这道题整死了,因为我的写法导致有的数可能变成负的,但是我们有察觉到,debug了一下午还是在吃饭的时候突然想到这个问题的. ...
- 【HDU】5238 Calculator 【中国剩余定理+线段树】
传送门:[HDU]5238 Calculator 题目分析: 模数可以拆成四个小素数:7,13,17,19. 这样我们可以分别对这几个素数跑答案,最后中国剩余定理搞一下就好.中间我们用线段树,保存每个 ...
- 【HDU】5197 DZY Loves Orzing 【FFT启发式合并】
传送门:[HDU]5197 DZY Loves Orzing 题目分析: 首先申明,我不会dpdp方程= =--这个东西给队友找出来了,然后我就是套这个方程做题的Qrz-- 对于这题,因为n2n^2个 ...
- 【HDU】1535 Invitation Cards 最短路
传送门:[HDU]1535 Invitation Cards 题目分析:题目真难读......其实题目的意思就是让求从编号为1的点到其他所有点的最短路距离之和加上其他所有点到编号为1的点的最短路距离之 ...
- 【HDU】4411 Arrest 费用流
传送门:[HDU]4411 Arrest 题目分析:题目的意思一开始没看懂= =...题意大致为:派出至多K个警队遵守先灭小的再灭老的的原则将N个城市的帮派全端了(要灭编号大的必须要先灭编号小的).且 ...
- 【HDU】3271 SNIBB 数位DP
传送门:[HDU]3271 SNIBB 题目分析:第一问直接求,第二问就二分.水题. 代码如下: #include <cmath> #include <cstdio> #inc ...
- 【HDU】5370 Tree Maker 【树dp】
传送门:[HDU]5370 Tree Maker my code:my~~code: #include <bits/stdc++.h> using namespace std ;type ...
- 【HDU】4859 海岸线 黑白染色+最小割
传送门:[HDU]4859 题目分析: 最小割的思想真是博大精深! 本题的模型是最小割. 我们需要最大化海岸线的长度,如果相邻两点属性不同才会存在海岸线(海和陆地),所以我们可以将题目转化成最小化不是 ...
最新文章
- 根据JSON自动生成select联动
- DApp基础设施设计:借助Kubernetes、Docker和Parity实现可靠的以太坊事件跟踪
- matlab 表格控件,[转载]matlab读取excel数据并显示在excel(activex控件)中
- swift4.0-11 类和结构体
- 顺序表链表 LeetCode专项练习 [19]\[24]
- ipv6+ssh+java_IPv6的本地联网地址计算方法详解
- TCP/IP、Http、Socket的区别以及面试中关于网络协议常问的考点
- topcoder srm 686 div1 -3
- bzoj 4300: 绝世好题
- Interesting Finds: 2008.01.04
- 【CART与GBDT】
- linux启动报错23修复
- 2022,微博稳了吗?
- C语言程序设计-班级档案管理系统
- php生成其他网页截图,php实现网页截图
- 【金猿产品展】北森一体化人才管理云平台:让中国企业拥有世界领先的人才管理能力...
- CNS数据链测试模拟平台——POCKET
- 2022-2028年中国中医医疗机构行业投资策略探讨及市场规模预测报告
- [CodeChef Trips]Children Trips
- 大四实习已offer公司
热门文章
- java的隐藏函数_java – 隐藏子级数据成员的父成员函数
- charles都踩过哪些坑_野路子14年 不如“缠论”1年 收益翻20倍
- 倒计时 分秒 小程序 方法_小程序天/小时/分秒倒计时封装
- python创建列表副本_Python编程15:Python列表的排序和列表的副本
- 广州市php速成培训班,深圳PHP速成培训班
- 高性能计算机的基准测试程序包括,QX∕T 148-2020 气象领域高性能计算机系统测试与评估规范(可复制版)(40页)-原创力文档...
- php中new与构造函数,php - 在构造函数中使用“ new”关键字 - SO中文参考 - www.soinside.com...
- php开发错题集,基于PHP技术数学错题集错系统的设计实现
- java重定向post_java实现响应重定向发送post请求操作示例
- 部署 Job (第二部分)