zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    二分 || UOJ 148 跳石头
    等边n边型
    激光样式
    n个数中选k个数和为sum
    引爆炸弹
    光盘行动
    (二分)分蛋糕问题
    总结
    个人测试
    第三次团队作业
  • 原文地址:https://www.cnblogs.com/ztz11/p/9484301.html
Copyright © 2011-2022 走看看