zoukankan      html  css  js  c++  java
  • 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)) 这个结论。

  • 相关阅读:
    jQuery的end() 方法
    jQuery.extend 函数使用详解
    AutoMapper完成Dto与Model的转换
    IoC实践--用Unity实现MVC5.0的IoC控制反转方法
    IoC实践--用Autofac实现MVC5.0的IoC控制反转方法
    Unity依赖注入使用详解
    React+BootStrap+ASP.NET MVC实现自适应和组件的复用
    oracle基础开发工具及常用命令
    Cisco配置发送日志到日志服务器
    Redis讲解
  • 原文地址:https://www.cnblogs.com/TheShadow/p/11391518.html
Copyright © 2011-2022 走看看