• 【bzoj2393】Cirno的完美算数教室 数论容斥


    Description

    ~Cirno发现了一种baka数,这种数呢~只含有2和⑨两种数字~~
    现在Cirno想知道~一个区间中~~有多少个数能被baka数整除~
    但是Cirno这么天才的妖精才不屑去数啦
    只能依靠聪明的你咯。

    Input

    一行正整数L R
    ( 1 < L < R < 10^10)

    Output

    一个正整数,代表所求的答案

    Sample Input

    1 100

    Sample Output

    58

    HINT

    此题数据范围应该是10^9

    题解:

      处理处所有数然后容斥。

     1 #include<cstring>
     2 #include<cmath>
     3 #include<algorithm>
     4 #include<iostream>
     5 #include<cstdio>
     6 
     7 #define ll long long
     8 using namespace std;
     9 inline int read()
    10 {
    11     int x=0,f=1;char ch=getchar();
    12     while(ch>'9'||ch<'0'){if (ch=='-') f=-1;ch=getchar();}
    13     while(ch<='9'&&ch>='0'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}
    14     return x*f;
    15 }
    16 
    17 int L,R;
    18 int n,m,ans;
    19 ll a[2001],b[2001];
    20 bool vis[2001];
    21 
    22 void pre(ll x,int R)
    23 {
    24     if (x>R) return;
    25     if (x) a[++m]=x;
    26     pre(x*10+2,R);pre(x*10+9,R);
    27 }
    28 ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
    29 void dfs(int x,int y,ll z)
    30 {
    31     if (x>n)
    32     {
    33         if (y&1) ans+=R/z-(L-1)/z;
    34         else if (y) ans-=R/z-(L-1)/z;
    35         return;
    36     }
    37     if (z>R) return;
    38     dfs(x+1,y,z);
    39     z=z/gcd(a[x],z)*a[x];
    40     dfs(x+1,y+1,z);
    41 }
    42 int main()
    43 {
    44     L=read();R=read();
    45     pre(0LL,R);
    46     sort(a+1,a+m+1);
    47     for (int i=1;i<=m;i++)
    48         if (!vis[i])
    49         {
    50                b[++n]=a[i];
    51             for (int j=i+1;j<=m;j++)if (a[j]%a[i]==0) vis[j]=1;
    52         }
    53     for (int i=1;i<=n;i++)
    54         a[n-i+1]=b[i];
    55     dfs(1,0,1);
    56     printf("%d",ans);
    57 }
  • 相关阅读:
    3.22-3.29课题(拼团系统)进度汇报
    结对编程二--单元测试
    个人作业2——英语学习APP案例分析
    第三周进度报告(拼团系统项目)
    结对编程1
    启动Tomcat提示:指定的服务未安装
    (C#)DataTable导出Excel
    支持向量机通俗导论(理解SVM的三层境界)
    LIBSVM在Matlab下的使用
    dev中 使用一些控件后,窗体屏蔽右键某些菜单
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/8143008.html
Copyright © 2020-2023  润新知