• jzoj5196. 【NOIP2017提高组模拟7.3】B (数论,巧妙的暴力)


    Description

    Input

    Output

    Sample Input

    5 10 40
    2 4 80
    2 3 57
    1 2 16
    2 5 49

    Sample Output

    16

    Data Constraint

    Hint

    思路:

    这道题第一眼我以为是暴力

    但一看数据范围差点没吓死我

    但突然发现一个好玩的东西

    gcd(a,b)=gcd(a-b,b)(a>b)

    这时候我们的暴力就可以加以优化

    在打表时可以跳着打

    一个gcd打一次表

    累加即可

    快多了

    代码:

    #include<iostream>
    #include<cstdio>
    #define rii register int i
    #define rij register int j
    using namespace std;
    int t,ans[10000005],n;
    void ycl()
    {
        for(rii=1;i<=10000000;i++)
        {
            for(rij=i*2;j<=10000000;j+=i)
            {
                if((j^(j-i))==i)
                {
                   ans[j]++;
                }
            }
            ans[i]+=ans[i-1];
        }
        return;
    }
    int main()
    {
        ycl();
        scanf("%d",&n);
        printf("%d",ans[n]);
        return 0;
    }
  • 相关阅读:
    传参问题-HttpMessageNotReableException
    排序03-简单排序法
    排序02-直接插入排序法
    排序01-冒泡排序法
    书摘
    CS229
    SLAM学习笔记
    形态学图像处理
    SLAM学习笔记
    SLAM学习笔记
  • 原文地址:https://www.cnblogs.com/ztz11/p/9484301.html
Copyright © 2020-2023  润新知