P1072 HanksonHankson 的趣味题
题意:给定$a_0,a_1,b_0,b_1$
问有多少x满足1:$gcd(x,a_0)=a_1$
2:$lcm(x,b_0)=b_1$
思路:暴力枚举(当然不是死枚举)
枚举$a_1$的倍数,判断。。
然而,,,,50分+TLE
正解:
首先:对于已知:1:$gcd(x,a_0)=a_1$得
$gcd(\frac{x}{a_1},\frac{a_0}{a_1})=1$
2:$lcm(x,b_0)=b_1$ 可得
$gcd(x,b_0)=x*\frac{b_0}{lcm(x,b_0)}=x*\frac{b_0}{b_1}$
所以:$gcd(\frac{x}{\frac{x*b_0}{b_1}},\frac{b_0}{\frac{x*b_0}{b_1}})=1$
化简得:$gcd(\frac{b_1}{b_0},\frac{b_1}{x})=1$
整理一下: $\left\{\begin{aligned}gcd(\frac{x}{a_1},\frac{a_0}{a_1})=1\\gcd(\frac{b_1}{b_0},\frac{b_1}{x})=1\end{aligned}\right.$
所以: x 是 $a_1$ 的整数倍而且是$b_1$的因子
做法:$O(\sqrt{b_1})$枚举 $b_1$ 的因子(也就是 x),如果这个数是 $a_1$ 的整数倍并且满足那两个式子,则 ans++
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
#define olinr return
#define love_nmr 0
#define _ 0
int n;
int a0,a1,b0,b1;
int ans;
inline int gcd(int x,int y)
{
return y? gcd(y,x%y):x;
}
signed main()
{
scanf("%d",&n);
while(n--)
{
ans=;
scanf("%d%d%d%d",&a0,&a1,&b0,&b1);
int A=a0/a1;
int B=b1/b0;
for(int i=;i*i<=b1;i++)
{
if(b1%i==)
{
if(i%a1==&&gcd(i/a1,A)==&&gcd(b1/i,B)==) ans++;
int ano=b1/i;
if(ano==i) continue;
if(ano%a1==&&gcd(ano/a1,A)==&&gcd(b1/ano,B)==) ans++;
}
}
printf("%d\n",ans);
}
olinr ~~(^_^)+love_nmr;
}
P1072 HanksonHankson 的趣味题的更多相关文章
- 洛谷 P1072 Hankson 的趣味题 解题报告
P1072 \(Hankson\)的趣味题 题目大意:已知有\(n\)组\(a0,a1,b0,b1\),求满足\((x,a0)=a1\),\([x,b0]=b1\)的\(x\)的个数. 数据范围:\( ...
- luogu P1072 Hankson的趣味题
题目链接 luogu P1072 Hankson 的趣味题 题解 啊,还是noip的题好做 额,直接推式子就好了 \(gcd(x,a_0)=a_1=gcd(\frac{x}{a_1},\frac{a_ ...
- 洛谷P1072 Hankson 的趣味题
P1072 Hankson 的趣味题 题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一 ...
- Java实现洛谷 P1072 Hankson 的趣味题
P1072 Hankson 的趣味题 输入输出样例 输入 2 41 1 96 288 95 1 37 1776 输出 6 2 PS: 通过辗转相除法的推导 import java.util.*; cl ...
- 洛谷P1072 Hankson 的趣味题(题解)
https://www.luogu.org/problemnew/show/P1072(题目传送) 数学的推理在编程的体现越来越明显了.(本人嘀咕) 首先,我们知道这两个等式: (a0,x)=a1,[ ...
- 洛谷P1072 Hankson的趣味题
这是个NOIP原题... 题意: 给定 a b c d 求 gcd(a, x) = b && lcm(c, x) = d 的x的个数. 可以发现一个朴素算法是从b到d枚举,期望得分50 ...
- 【题解】洛谷P1072 Hankson的趣味题 (gcd和lcm的应用)
洛谷P1072:https://www.luogu.org/problemnew/show/P1072 思路 gcd(x,a0)=a1 lcm(x,b0)=b1→b0*x=b1*gcd(x,b0) ( ...
- 洛谷 P1072 Hankson 的趣味题
题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现 在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲 ...
- 洛谷 - P1072 Hankson - 的趣味题 - 质因数分解
https://www.luogu.org/problemnew/show/P1072 一开始看了一看居然还想放弃了的. 把 \(x,a_0,a_1,b_0,b_1\) 质因数分解. 例如 \(x=p ...
随机推荐
- codeforces 655A A. Amity Assessment(水题)
题目链接: A. Amity Assessment time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- leetcode 7 Reverse Integer(水题)
so easy,注意一下输入不爆int但是反转以后可能爆int. class Solution { public: int gao(int w){ ) ; else{ ; while(w--){ an ...
- C++0X 学习之 auto
auto并不是一个新关键词,是一个把旧关键词赋予新的作用,新的作用修饰变量声明,指示编译器根据变量的初始化表达式推导变量应有的类型.auto 声明的变量必须“在声明处完成初始化”,编译器才可根据初始化 ...
- Linux上用nginx搭建RTMP服务器
参考文章:https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.5 ...
- 查找图像中椭圆轮廓的快速随机hough变换
查找图像中椭圆轮廓的快速随机hough变换 图像中椭圆轮廓的查找在视频监控等领域有着广泛的应用,经典hough变换给我们提供了一种查找各种图形轮廓的方法,特别是在直线查找方面具有非常高的精确度.但是由 ...
- Poj 1019 Number Sequence( 数据分析和操作)
一.题目大意 有这样一个序列包含S1,S2,S3...SK,每一个Si包括整数1到 i.求在这个序列中给定的整数n为下标的数. 例如,前80位为1121231234123451234561234567 ...
- JSP介绍(4)--- JSP Cookie 处理
Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息. JSP脚本通过request对象中的getCookies()方法来访问这些cookie,这个方法会返回一个Cookie对象的数组. 通常 ...
- 【jQuery】praseFloat()方法的用法及注意事项
[jQuery]praseFloat()方法的用法及注意事项 praseFloat(): 用于解析一个字符串,并返回一个浮点数 语法: praseFloat(strin ...
- [原]toString()方法的复写作用, 以及打印集合.
java中的每个类的根都是Object的子类. 必然有拥有了Object的所有方法. 在package java.lang.Object源码中: public String toString() { ...
- struts2 json返回试验
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/ ...