HDU - 1695 GDU
莫比乌斯反演基础。
用rep 去掉重复的对数,rep一定是奇数( 因为有(1,1 ) )
#include <bits/stdc++.h>
using namespace std;
#define fst first
#define scd second
#define pb(x) push_back((x))
#define mkp(x,y) make_pair((x),(y))
#define ist(x) insert((x))
typedef long long ll;
typedef pair<int ,int > pii;
typedef pair<ll ,ll > pll;
typedef vector< int > vi;
ll gcd(ll a,ll b){ return b==?a:gcd(b,a%b);}
ll qPow(ll a,ll b,ll mod){ ll ret=1ll;while(b){ if(b&) ret=ret*a%mod;a=a*a%mod;b>>=;} return ret; } const int maxN=1e5+;
bool check[maxN+];
int prime[maxN+];
int mu[maxN+];
void init(){
memset(check,false,sizeof(check));
mu[]=;
int tot=;
for(int i=;i<=maxN;++i){
if(!check[i]) { prime[tot++]=i; mu[i]=-; }
for(int j=;j<tot;++j){
long long k=i*prime[j];// may overflow ,
if(k>maxN) break;
check[k]=true;
if(i%prime[j]==){ mu[k]=; break; }
else mu[k]=-mu[i];
}
}
/*
for(int i=1;i<=100;++i)
printf(" mobi %d : %d\n",i,mu[i]);
*/
} int main(){
init();
int T;
scanf("%d",&T);
for(int cntT=;cntT<=T;++cntT){
printf("Case %d: ",cntT);
int A,B,C,D,K;
scanf("%d%d%d%d%d",&A,&B,&C,&D,&K);
if(!K) { puts("");continue; }
ll ans=0ll;
ll rep=0ll;
B/=K,D/=K;
int bound=min(B,D);
for(int i=;i<=bound;++i) {
ans+=1ll*mu[i]*(B/i)*(D/i);
//printf("after %d : %lld\n",i,ans);
}
for(int i=;i<=bound;++i) rep+=1ll*mu[i]*(bound/i)*(bound/i);
//printf(" \n%lld %lld\n",ans,rep);
printf("%lld\n",ans-rep/);
}
return ;
}
HDU - 1695 GDU的更多相关文章
- D - GCD HDU - 1695 -模板-莫比乌斯容斥
D - GCD HDU - 1695 思路: 都 除以 k 后转化为 1-b/k 1-d/k中找互质的对数,但是需要去重一下 (x,y) (y,x) 这种情况. 这种情况出现 x ,y ...
- HDU 1695 容斥
又是求gcd=k的题,稍微有点不同的是,(i,j)有偏序关系,直接分块好像会出现问题,还好数据规模很小,直接暴力求就行了. /** @Date : 2017-09-15 18:21:35 * @Fil ...
- HDU 1695
http://acm.hdu.edu.cn/showproblem.php?pid=1695 x是[1,b],y是[1,d],求GCD(x,y)=k的对数(x,y无序) 对x,y都除以k,则求GCD( ...
- HDU 1695 GCD 容斥
GCD 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=1695 Description Given 5 integers: a, b, c, d, k ...
- HDU 1695 GCD(欧拉函数+容斥原理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 题意:x位于区间[a, b],y位于区间[c, d],求满足GCD(x, y) = k的(x, ...
- HDU 1695 GCD 欧拉函数+容斥原理+质因数分解
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 题意:在[a,b]中的x,在[c,d]中的y,求x与y的最大公约数为k的组合有多少.(a=1, a ...
- HDU 1695 GCD#容斥原理
http://acm.hdu.edu.cn/showproblem.php?pid=1695 翻译题目:给五个数a,b,c,d,k,其中恒a=c=1,x∈[a,b],y∈[c,d],求有多少组(x,y ...
- ●HDU 1695 GCD
题链: http://acm.hdu.edu.cn/showproblem.php?pid=1695 题解: 容斥. 莫比乌斯反演,入门题. 问题化简:求满足x∈(1~n)和y∈(1~m),且gcd( ...
- hdu 1695 GCD 欧拉函数 + 容斥
http://acm.hdu.edu.cn/showproblem.php?pid=1695 要求[L1, R1]和[L2, R2]中GCD是K的个数.那么只需要求[L1, R1 / K] 和 [L ...
随机推荐
- [练习-1] android studio 从Activity 进入 Fragment
从activity 进入到 fragment,使用系统自带的ListFragment 1,新建empty activity 2,新建Fragment(List) 3,activity_main.xml ...
- How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)
How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)
- Redis深入学习笔记(二)client list 命令详解
Redis的client list 命令可以获取当前连接到redis server端的所有客户端以及相关状态,本篇主要介绍每一个参数的作用. clisnt list 命令输出结果如下: (1)标识:i ...
- VB VB 定义及区别
VB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的.面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序.VC是Vis ...
- 数据传输流程和socket简单操作
一.***C/S架构:客户端(client)/服务端(server)架构, B/S架构:浏览器(browser) / 服务端(server)架构 软件cs架构:浏览器,qq,微信,陌陌等等硬件cs架构 ...
- 学习excel的使用技巧统计文本出现的次数
其实是使用一个函数来完成的 =ifcount(C1:C214,''test123") 统计c1到c214中出现的test123的次数
- orcal -学习准备
格式化命令: 设置每行长度 SET LINESIZE 300; 设置每页长度 SET PAGESIZE 30; 使用文本编辑 文本编辑sql:ed aa 使用@aa 切换用户: CONN 用户名/密码 ...
- react 和 seamless-immutable
在 react 中,默认改变组件状态或者属性,是会整个组件全部重新渲染,但是 如果只是修改一个地方,而全部渲染,就会浪费资源,大项目中会造成性能问题 shouldComponentUpdate s ...
- git取别名配置
已经配置的别名 $ git config --global alias.st status $ git config --global alias.co checkout $ git config - ...
- 关于js-angularJS的路由传参
使用angular进行网页跳转传参 app.controller('payController', function ($scope, $location, payService) { 注明$loca ...