有史以来最毒瘤的一次之Hankson的趣味题。。。

14人阅读 评论(1) 收藏 举报
分类:

我先写一篇博客发表一下我的情感
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
一道数论题,我写了整整四天,刷了整整四页半提交记录,还把正确率刷到了30%。。。
可恶啊,然而。。。
进阶指南确定没有问题吗。。。
其实我至今不知道它怎么写,只不过是把别人的代码用自己的语言搬过来而已。。。
不行这一题我一定得点差评。。。
而且最牛逼的是除了60分之外,我刷了0分。10分。20分。30分。40分。50分。70分。80分。90分。100分。。。
这是我血的代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,a0,a1,b0,b1,ans,temp,isprime[10010],v[500010];
bool flag;
inline int read()
{
    int num=0,flag=1;
    char c=getchar();
    for (;c<'0'||c>'9';c=getchar())
    if (c=='-') flag=-1;
    for (;c>='0'&&c<='9';c=getchar())
    num=(num<<3)+(num<<1)+c-48;
    return num*flag;
}
void getprime()
{
    for (int i=2;i<=m;++i)
    {
        if (!v[i])
        {
            v[i]=i;
            isprime[++temp]=i;
        }
        for (int j=0;j<=temp;++j)
        {
            if (isprime[j]>v[i]||isprime[j]>m/i) break;
            v[i*isprime[j]]=isprime[j];
        }
    }
}
void cnt(int t)
{
    int ma=0,mb=0,mc=0,md=0,mx=0;
    while (a0%t==0)
    {
        ma++;
        a0/=t;
    }
    while (b0%t==0)
    {
        mb++;
        b0/=t;
    }
    while (a1%t==0)
    {
        mc++;
        a1/=t;
    }
    while (b1%t==0)
    {
        md++;
        b1/=t;
    }
    if (ma==mc&&mb==md&&mc<=md) mx=md-mc+1;
    if (ma>mc&&mb<md&&mc==md) mx=1;
    if (ma>mc&&mb==md&&mc<=md) mx=1;
    if (ma==mc&&mb<md&&md>=mc) mx=1;
    ans*=mx;
    if (ans==0) flag=false;
}
int main()
{
    n=read();
    m=sqrt(2000000000);
    getprime();
    for (int i=1;i<=n;++i)
    {
        flag=true;
        a0=read();
        a1=read();
        b0=read();
        b1=read();
        ans=1;
        for (int j=1;j<=temp;++j)
        {
            if (isprime[j]<=b1) cnt(isprime[j]);
            if (flag==false) break;
        }
        if (a0>1) cnt(a0);
        else if (b1>1&&b1!=a0) cnt(b1);
        printf("%lld\n",ans);
    }
    return 0;
}

0.0根本不知道怎么做GG

查看评论

Python趣味百题-进阶篇

精选的30个实例都从趣味编程的角度出发,并兼顾实用性。实例涵盖了Python程序设计的基础知识和常用算法,很多实例来自编程大赛和企业面试题,具有很强的实用价值,实例遵循先提出问题,再分析问题,最后代码实现。
  • 2016年05月12日 10:01

NOIP2009 Hankson的趣味题

求出满足条件的x的个数:gcd(x,a0) = a1  lcm(x,b0) = b1 我们不难得到gcd(x/a1,a0/a1) = 1  gcd(b1/x,b0/b1) = 1 以前上数论的时候讲过...
  • cqbzwja
  • cqbzwja
  • 2015-08-10 19:45:26
  • 1096

NOIP2009 Hankson 的趣味题

题目:http://www.luogu.org/problem/show?pid=1072# 分析: 1.gcd(x,a0)=a1; gcd(x/a1,a0/a1)=1; 2.x*b0=b...
  • jerry99s
  • jerry99s
  • 2015-10-20 17:11:32
  • 1150

Hankson的趣味题[NOIP2009]解题报告

这道题主要思路是对a0,a1,b0,b1分解质因数,得到其对于50000以内每个质因子的幂a,down,b,up,然后对于方程组:         min(a,x)=down         ma...
  • TA201314
  • TA201314
  • 2014-11-05 16:43:04
  • 2077

【codevs 1172】【vijos P1753】HankSon的趣味题(模拟)

远处淡淡起茶烟,残梦晓月天
  • reverie_mjp
  • reverie_mjp
  • 2016-11-15 14:18:14
  • 305

Codevs1172 Hankson的趣味题

快被这题逼到吐血了,本来想通过质因数分解确定范围最后乘法原理,最后在RE的驱使下发现根本不能这么玩因为这数太大了!最后去%题解,发现了一个实在简单的方法。 原文:根据题意可以推出 lcm(x,b0)...
  • Little_Flower_0
  • Little_Flower_0
  • 2015-10-19 21:24:44
  • 517

蓝桥杯 算法训练 Hankson的趣味题 (唯一分解定理)

算法训练 Hankson的趣味题 时间限制:1.0s 内存限制:64.0MB 提交此题 锦囊1 锦囊2 问题描述   Hanks 博士是BT (Bio-Tech,生物技术) 领域的...
  • zhuanshunzhe
  • zhuanshunzhe
  • 2017-05-02 18:53:19
  • 211

【noip】HankSon的趣味题

描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson。现 在,刚刚放学回家的 Hankson 正在思考一个有趣的问题。 今...
  • u011327397
  • u011327397
  • 2016-08-30 19:11:04
  • 347

Hankson的趣味题

【题目描述】今天在课堂上,老师讲解了如何求两个正整数c[1]和c[2]的最大公约数和最小公倍数。现在Hankson认为自己已经熟练地掌握了这些知识,他开始思考一个“求公约数”和“求公倍数”之类问题的“...
  • Ackermann
  • Ackermann
  • 2016-10-05 06:37:50
  • 194

NOIP2009 Hankson的趣味题 [数论]

Hankson 的趣味题 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold题目描述 Description Hanks...
  • ourfutr2330
  • ourfutr2330
  • 2016-08-30 15:10:52
  • 276
    个人资料
    持之以恒
    等级:
    访问量: 3719
    积分: 594
    排名: 8万+
    最新评论