• Luogu P1072 Hankson 的趣味题 题解


    闲扯

    蒟蒻持续学习数学中。。。

    题面

    题面

    Solution

    由条件 (2)(lcm(x,b_0)=b_1) 可以得出 (xmid b_1)

    我们可以枚举 (b_1) 的约数,如果同时满足条件 (1) 和条件 (2) ,那么我们就将答案加一。

    由试除法可知,枚举一个数的的所有约数时间复杂度为 (O(sqrt{N})) 。由于有多组数据,且还需求 (gcd) ,所以总的复杂度为 (O(Ncdotsqrt{b_1}cdot log{b_1}))

    加上读入优化和输出优化,可以很快的跑过去。

    Code

    #include<bits/stdc++.h>
    #define del(a,i) memset(a,i,sizeof(a))
    #define ll long long
    #define inl inline
    #define il inl void
    #define it inl int
    #define ill inl ll
    #define re register
    #define ri re int
    #define rl re ll
    #define mid ((l+r)>>1)
    #define lowbit(x) (x&(-x))
    #define INF 0x3f3f3f3f
    using namespace std;
    template<class T>il read(T &x){
    	int f=1;char k=getchar();x=0;
    	for(;k>'9'||k<'0';k=getchar()) if(k=='-') f=-1;
    	for(;k>='0'&&k<='9';k=getchar()) x=(x<<3)+(x<<1)+k-'0';
    	x*=f;
    }
    template<class T>il print(T x){
    	if(x/10) print(x/10);
    	putchar(x%10+'0');
    }
    ll mul(ll a,ll b,ll mod){long double c=1.;return (a*b-(ll)(c*a*b/mod)*mod)%mod;}
    it qpow(int x,int m,int mod){
    	int res=1,bas=x%mod;
    	while(m){
    		if(m&1) res=(res*bas)%mod;
    		bas=(bas*bas)%mod,m>>=1;
    	}
    	return res%mod;
    }
    int n,a,b,c,d,ans;
    it gcd(int x,int y){return y==0?x:gcd(y,x%y);}
    int main()
    {
    //	freopen(".in","r",stdin);
    //	freopen(".out","w",stdout);
    	read(n);
    	while(n--){
    		read(a),read(b),read(c),read(d),ans=0;
    		for(ri i=1;i*i<=d;++i){
    			if(d%i) continue;
    			if(gcd(i,a)==b&&1ll*i*c/gcd(i,c)==d) ans++;
    			if(i*i==d) break;
    			if(gcd(d/i,a)==b&&1ll*d/i*c/gcd(d/i,c)==d) ans++;
    		}
    		print(ans);puts("");
    	}
    	return 0;
    }
    

    总结

    灵活应用 (amid lcm(a,b)) 这个结论。

  • 相关阅读:
    使用isinstance()函数,判断输入的函数是否为已知的类型。raise() 引发异常。
    maya命令的运用。范例1。#举一反三
    maya中英文切换
    变量和maya命令 #getAttr #setAttr #xform #connectAttr #disconnectAttr
    变量和maya命令 #polySphere命令,创建、查询、编辑。
    PyCharm配置Maya开发环境
    希望与憧憬
    Java RandomAccessFile基本的用法
    Java 文件(File)类
    计算机编码问题
  • 原文地址:https://www.cnblogs.com/TheShadow/p/11391518.html
Copyright © 2020-2023  润新知