博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1695 莫比乌斯基础题
阅读量:4512 次
发布时间:2019-06-08

本文共 730 字,大约阅读时间需要 2 分钟。

HDU1695的题目大意是这样的,给你 a , b , c , d , k 五个值 (题目说明了 你可以认为 a=c=1) x 属于 [1,b] ,y属于[1,d] 让你求有多少对这样的 (x,y)满足gcd(x,y)==k。

这一题和hdu 6053不一样的地方在于,在hdu6053 x,y 是确定的一个数而不是一个范围,所以hdu 6053 不是纯正的莫比乌斯,只是单纯的容斥的时候利用到了莫比乌斯函数而已,如果把hdu 6053 强行归类到 正版的莫比乌斯,像我这样的新手就会很纠结。。hdu 6053应该归类到容斥。

在这里 x和 y是一个定值 那么 因为 gcd(x,y)==k 和 gcd(x/k,y/k)==1 其实是等价的 所以 枚举 x/k 和y/k里面的共有因子 就是 1~min(x/k,y/k) 那么就变成了基础的莫比乌斯入门题了

#include 
using namespace std;const int maxn=1e5+7; bool vis[maxn]; int prime[maxn],mu[maxn]; int cnt; void Init(){ int N=maxn; memset(prime,0,sizeof(prime)); memset(mu,0,sizeof(mu)); memset(vis,0,sizeof(vis)); mu[1] = 1; cnt = 0; for(int i=2; i

转载于:https://www.cnblogs.com/dabai520/p/7554171.html

你可能感兴趣的文章
个人github链接及git学习心得总结
查看>>
c++ 计算器 带括号 代码实现
查看>>
objective -c初写
查看>>
C#中如何设置窗体的默认按钮和取消按钮
查看>>
[Swift]LeetCode276. 粉刷栅栏 $ Paint Fence
查看>>
[Swift]LeetCode351. 安卓解锁模式 $ Android Unlock Patterns
查看>>
break语句和continue语句
查看>>
java代码中添加log4j日志
查看>>
Java学习不走弯路教程(19 对于Service的自动注入)
查看>>
[CSS3] :empty Selector
查看>>
webpack4 入门(二)
查看>>
vim配置成c++IDE
查看>>
利用node搭建本地服务器
查看>>
python pickle命令执行与marshal 任意代码执行
查看>>
Elasticsearch 2.3 java api
查看>>
golang写入csv
查看>>
基础2
查看>>
java基础篇---网络编程(UDP程序设计)
查看>>
Kafka Producer相关代码分析【转】
查看>>
LeetCode 121. Best Time to Buy and Sell Stock
查看>>