• CC MayClg 15 T3


    www.codechef.com/MAY15/problems/CHAPD

    一道比较神奇的题目...

    看到题目后自己yy出了个傻逼算法...然后对拍都是对的...提交都是错的...然后一看"Yes"打成"YES"了...= =!!人傻逼就是会犯脑残错误...

    我的算法是$Oleft(log^2{n} ight)$的,但是实践中跑得很快...

    这道题需要不多的数论知识= =...

    我们设pf(x)={p|primes(p),p|x}

    显然题目要求你判断$mathtt{pf}(B)subseteq mathtt{pf}(A)$.

    然后是比较奇怪的想法...我一开始就想到了,问了问LZW学长但是他没想到...

    那么我们要判断的是$mathtt{pf}left(gcd{A,B} ight)=mathtt{pf}left(B ight)$

    我们记$C=gcd{A,B}$

    那么上面命题成立的充分必要条件是$mathtt{pf}left(frac{B}{C} ight)subseteq mathtt{pf}left(C ight)$

    这个证明就yy一下好了,感觉挺好证的..

    那么就可以递归求解了...

    代码

    #include <cstdio>
    typedef long long ull;
    ull a,b;
    ull gcd(ull a,ull b){
    	return a?gcd(b%a,a):b;
    }
    bool isk(ull a,ull b){
    	ull c=gcd(a,b);
    	ull d=b/c;
    	if(c==1&&d!=1) return false;
    	if(d!=1ll) return isk(c,d);
    	return true;
    }
    int T;
    int main(){
    	scanf("%d",&T);
    	while(T--){
    		scanf("%lld%lld",&a,&b);
    		if(isk(a,b)) printf("Yes
    "); else printf("No
    ");
    	}
    	return 0;
    }

     

  • 相关阅读:
    Find a way(两个BFS)
    ACM代码模板
    ElasticSearch-集群
    ElasticSearch-倒排索引
    ElasticSearch-IK分词器
    ElasticSearch-数据类型
    ElasticSearch-REST APIS
    cmd命令行中的errorlevel和延迟赋值
    ubuntu 12.04内核升级到3.13.1
    ubuntu 12.04安装TP-LINK TL-WN725N v2
  • 原文地址:https://www.cnblogs.com/tmzbot/p/4504496.html
Copyright © 2020-2023  润新知