loj2589 「NOIP2009」Hankson 的趣味题
对于质因数分解理解还不到位。
此题可知$lcm$是$x$的倍数,$x$是$lcm$的约数,只要在$lcm$的分解质因数里对每一个质因子讨论种数即可。
具体来说,对于$lcm$的一个质因子$p$,讨论$a,b,c,d(也就是lcm)$关于$p$的幂次,然后比较大小,分类讨论得出种数。
实现上来看,只要在枚举$lcm$质因子过程中,一带把$a,b,c,d$全部除去这个因子,再比较幂次。
一些细节:
- 一定要保证$b|d$,不解释。
- 可能$a$包含$lcm$没有的质因子,但不影响讨论。
- 枚举$1 \sim \sqrt{lcm}$来找$lcm$质因子,通过优化,只枚举$1 \sim \sqrt{lcm}$内质数(可预处理)可以降低复杂度。
- 注意最后讨论有没有剩下的一个超过$\sqrt{lcm}$的质因子。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define dbg(x) cerr << #x << " = " << x <<endl
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
template<typename T>inline T _min(T A,T B){return A<B?A:B;}
template<typename T>inline T _max(T A,T B){return A>B?A:B;}
template<typename T>inline char MIN(T&A,T B){return A>B?(A=B,):;}
template<typename T>inline char MAX(T&A,T B){return A<B?(A=B,):;}
template<typename T>inline void _swap(T&A,T&B){A^=B^=A^=B;}
template<typename T>inline T read(T&x){
x=;int f=;char c;while(!isdigit(c=getchar()))if(c=='-')f=;
while(isdigit(c))x=x*+(c&),c=getchar();return f?x=-x:x;
}
const int N=;
int prime[N],inshi[N+],n;
ll ans=;
int T,a,b,c,d,t1,t2,t3,t4,fl;
inline void preprocess(){
for(register int i=;i<=N;++i){
if(!inshi[i])prime[++n]=i;
for(register int j=;j<=n&&prime[j]<=N/i;++j){
inshi[i*prime[j]]=prime[j];
if(inshi[i]==prime[j])break;
}
}
} int main(){//freopen("son10.in","r",stdin);freopen("test.out","w",stdout);
preprocess();
read(T);while(T--){
read(a),read(b),read(c),read(d);
if(d%b){puts("");continue;}
ans=,fl=;
for(register int i=;prime[i]*prime[i]<=d;++i)if(d%prime[i]==){
t1=t2=t3=t4=;
while(d%prime[i]==)d/=prime[i],++t4;
while(c%prime[i]==)c/=prime[i],++t3;
while(b%prime[i]==)b/=prime[i],++t2;
while(a%prime[i]==)a/=prime[i],++t1;
if(t1==t2&&t3==t4&&t2<=t3)ans*=(t3-t2+);
else if(!(t1==t2&&t3<t4&&t2<=t4)&&!(t3==t4&&t1>t2&&t2<=t4)&&!(t1>t2&&t3<t4&&t2==t4)){fl=;break;}
}
if(!fl&&d^){
t4=,t3=c^?:,t2=b^?:,t1=a%d==?:;
if(t1==t2&&t3==t4&&t2<=t3)ans*=(t3-t2+);
else if(!(t1==t2&&t3<t4&&t2<=t4)&&!(t3==t4&&t1>t2&&t2<=t4)&&!(t1>t2&&t3<t4&&t2==t4))fl=;
}
if(fl)puts("");
else printf("%d\n",ans);
}
return ;
}
loj2589 「NOIP2009」Hankson 的趣味题的更多相关文章
- 「NOIP2009」Hankson 的趣味题
Hankson 的趣味题 [内存限制:$128 MiB$][时间限制:$1000 ms$] [标准输入输出][题目类型:传统][评测方式:文本比较] 题目描述 Hanks 博士是 BT(Bio-Tec ...
- 「NOIP2009」Hankson的趣味题
题目描述 (由于本题是数论题,所以我只把题目大意说一下...) 输入时给定\(a_0,a_1,b_0,b_1\),题目要求你求出满足如下条件的\(x\)的个数: \[\begin{cases}\gcd ...
- 【NOIP2009】Hankson 的趣味题
题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲解 ...
- NOIP2009 T2 Hankson的趣味题
传送门 题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上, ...
- 【NOIP2009】Hankson的趣味题
题意:给出 \(a_0\), \(a_1\), \(b_0\), \(b_1\), 求出正整数 \(x\) 的个数,\(x\) 满足: \(gcd(x,a_0)=a_1\) , \(lcm(x, b_ ...
- 洛谷P1072 [NOIP2009] Hankson 的趣味题
P1072 Hankson 的趣味题 题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一 ...
- CH3201 Hankson的趣味题
题意 3201 Hankson的趣味题 0x30「数学知识」例题 描述 Hanks博士是BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫Hankson.现在,刚刚放学回家的Hankson ...
- 一本通1626【例 2】Hankson 的趣味题
1626:[例 2]Hankson 的趣味题 题目描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Hankson.现在,刚刚放学回家的Hankson 正在思考 ...
- 1626:【例 2】Hankson 的趣味题
1626:[例 2]Hankson 的趣味题题解 [题目描述] Hanks 博士是 BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson ...
随机推荐
- 【Java】递归删除目录以及文件
public static void deleteDirectory(String path) { File pFile = new File(path); //若目录以及文件不存在,则终止继续执行方 ...
- PHP架构剖析
一:PHP是什么 PHP("PHP: Hypertext Preprocessor",超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中 ...
- 【学习笔记】使用python将最新的测试报告以附件的形式发到指定邮箱
import smtplib, email, os, timefrom email.mime.multipart import MIMEMultipartfrom email.mime.text im ...
- photoshop人物美白教程:暗沉肤色提亮美白
内容提要:本篇photoshop人物美白教程的制作方法主要通过提取高光选区,配合滤色模式进行人物美白. ps美白教程在网络上搜索,会找到很多.本文介绍的PS人物美白方法,笔者看来是比较好的一种,主要是 ...
- HTTP及WEB框架简述
HTTP介绍 Hyper Text Transfer Protocol,超文本传输书协议,是万维网数据通信的基础,规定了请求和响应标准. HTTP工作原理 HTTP 请求以及响应的步骤 客户端连接到W ...
- PJzhang:从js文件中寻找子域名的SubDomainizer
猫宁!!! 有些专门针对企业客户的网站,可能没有供公开注册的页面,但是在js文件中可能会隐藏他们的注册接口,当然这也是一种安全风险,就像有些后台是一定不能不小心放外网一个道理. 最近看到一篇文章提 ...
- Angular中引入外部js的使用方式
在Angular中我们或许会用到部分外部插件的时候,像Bootstrap,Jquery这些当然我们可以通过Npm安装包的形式引入,但是还有一些其它的js库需要引入的话,我们又应该怎样操作呢? 在这里做 ...
- 解决android studio的Gradle一直在sync的办法
出现问题的原因就是gradle下载太慢了. 打开gradle-wrapper.properties文件.查看gradle版本.如下: distributionUrl=https\://services ...
- powerDesigner连接数据库连接失败
powerDesigner连接数据库总是提示连接失败 原因是这个软件不能使用64位的jdk只能使用32位的jdk 在软件安装文件夹根目录下创建start.bat Set JAVA_HOME=E:\Ja ...
- SpringMVC必备知识点汇总
1.参数接收 1.1 数组 1.2 文件上传 1.2.1 单个文件上传 1.2.2 多个文件上传 1.2.3 文件上传时,携带其他数据 2.参数校验 参数校验:https://www.cnblogs. ...