题意:给定$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 的趣味题的更多相关文章

  1. 洛谷 P1072 Hankson 的趣味题 解题报告

    P1072 \(Hankson\)的趣味题 题目大意:已知有\(n\)组\(a0,a1,b0,b1\),求满足\((x,a0)=a1\),\([x,b0]=b1\)的\(x\)的个数. 数据范围:\( ...

  2. luogu P1072 Hankson的趣味题

    题目链接 luogu P1072 Hankson 的趣味题 题解 啊,还是noip的题好做 额,直接推式子就好了 \(gcd(x,a_0)=a_1=gcd(\frac{x}{a_1},\frac{a_ ...

  3. 洛谷P1072 Hankson 的趣味题

    P1072 Hankson 的趣味题 题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一 ...

  4. Java实现洛谷 P1072 Hankson 的趣味题

    P1072 Hankson 的趣味题 输入输出样例 输入 2 41 1 96 288 95 1 37 1776 输出 6 2 PS: 通过辗转相除法的推导 import java.util.*; cl ...

  5. 洛谷P1072 Hankson 的趣味题(题解)

    https://www.luogu.org/problemnew/show/P1072(题目传送) 数学的推理在编程的体现越来越明显了.(本人嘀咕) 首先,我们知道这两个等式: (a0,x)=a1,[ ...

  6. 洛谷P1072 Hankson的趣味题

    这是个NOIP原题... 题意: 给定 a b c d 求 gcd(a, x) = b && lcm(c, x) = d 的x的个数. 可以发现一个朴素算法是从b到d枚举,期望得分50 ...

  7. 【题解】洛谷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) ( ...

  8. 洛谷 P1072 Hankson 的趣味题

    题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现 在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲 ...

  9. 洛谷 - P1072 Hankson - 的趣味题 - 质因数分解

    https://www.luogu.org/problemnew/show/P1072 一开始看了一看居然还想放弃了的. 把 \(x,a_0,a_1,b_0,b_1\) 质因数分解. 例如 \(x=p ...

随机推荐

  1. 【遍历二叉树】04二叉树的层次遍历【Binary Tree Level Order Traversal】

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 给定一个二叉树,返回他的层次遍历的 ...

  2. BZOJ5324 JXOI2018 守卫

    传送门 这是我见过的为数不多的良心九怜题之一 题目大意 给定一段$n$个点构成的折线,第$i$个折点的坐标是$(i,h_i)$,你可以在$i$点放置一个视野,定义$i$能看到$j$当且仅当$i$处有视 ...

  3. 【原创】C++实现获取本机机器名及外网IP代码

    上代码: #include "stdafx.h" #include <WINSOCK2.H> #include <urlmon.h> #pragma com ...

  4. vue2.0中的$router 和 $route的区别

    1.router是VueRouter的一个对象,通过Vue.use(VueRouter)和VueRouter构造函数得到一个router的实例对象,这个对象中是一个全局的对象,他包含了所有的路由包含了 ...

  5. 数据schemaAvro简介

    文章结束给大家来个程序员笑话:[M] 最近在研究Thrift和Avro以及它们的区分,通过各种渠道搜集资料,现整顿出有关Avro的一些资料,方便当前参考. 一.弁言 1. 简介 Avro是Hadoop ...

  6. pycharm安装 package报错:module 'pip' has no attribute 'main'

    转自: <pycharm安装 package报错:module 'pip' has no attribute 'main'> https://www.cnblogs.com/Fordest ...

  7. ES6学习之数组扩展

    扩展运算符(...将数组分割为用逗号分割的参数序列) console.log(...[1,2,3]) //1 2 3 可替换数组的apply写法: function test(x,y,z){ cons ...

  8. Windchill 配置LOG文件,使开发中的代码能显示打印的信息

    如开发代码的类HomeLogic.java, 包路径在pnt.report.home 需求:需监控此类的打印数据 方法:配置D:\ptc\Windchill_10.1\Windchill\codeba ...

  9. PopupWindow-----listview item的点击出现PopupWindow

    /** * 设置listview item的点击事件 */ lv_app_manager.setOnItemClickListener(new OnItemClickListener() { @Ove ...

  10. SpringMVC RESTful中文乱码

    开发中常遇到各种中文乱码很少心烦,这里总结了各种中文乱码https://www.cnblogs.com/lwx521/p/9856186.html 下面以SpringMVC遇到的中文乱码为例详解 首先 ...