zoukankan      html  css  js  c++  java
  • 再数17

    题目:

    【问题描述】

          之前,小cot发邮件问小cos一个区间所有整数里有多少个“17”,小cos在你的帮助下回答了这个奇怪的问题,然而得到的回信只有“你对了:-)”这几个字……小cos耿耿于怀,始终弄不明白小cot的意图。

    终于,小cos决定主动问小cot一些问题。他先写了封邮件,问“17”的含义,回信写道:“我喜欢……17这个数字~”。小cos当然不能接受这样的回答,继续追问她为什么要自己数17,可回信又是简单的一句话:“我喜欢你……数17~”。

    小cos急了,狠敲键盘,发了一连串问号过去。几分钟后,对方回道:“想要知道为什么,你再回答我一个问题——

    “给你一个有n个正整数的数列{an}。一个正整数x若满足在数列{an}中存在一个正整数ai,使x≡17(mod ai),那么x就是一个‘cost数’。请问1到m的正整数中,有多少个‘cost数’?”

    小cos看得一头雾水,只好又来请教你……

    【输入】

          输入文件名为c17.in,共2行。

          第一行两个正整数n和m,意义见问题描述。

          第二行n个正整数,分别为数列{an}中的n个数。

    【输出】

          输出文件名为c17.out。

          输出一个整数,表示1到m中“cost数”的个数。

    【输入输出样例】

    c17.in

    c17.out

    3 100

    18 22 23

    11

    【数据范围】

          对于20%的数据,有n≤20,m≤100,000;

          另有40%的数据,n≤3,m<2^31;

          对于100%的数据,有n≤30,m<2^31,17<ai<2^31。

    (注:“≡”为同余符号,a≡b (mod k) 即a mod k = b mod k)

    唔,考试时拿到这个题直接用了欧几里得,然而忽略的判重。。。只过了俩组T-T(连对拍都都没注意!!)那么正解呢,利用了容斥原理来判重,下面贴出代码:

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,m;
    long long x[105],ans;
    long long dd(long long a,long long b)
    {
        long long t,q=a,w=b;
        for(t=q%w;w>0;q=w,w=t)t=q%w;
        return q;
    }
    void cl(int a,int b,long long c)
    {
        if(c>n||a==m) return ;
        long long ss=c*x[a]/dd(c,x[a]);
        if (b%2==0) ans+=n/ss;
            else ans-=n/ss;
        cl(a+1,b+1,ss);
        cl(a+1,b,c);
    }
    int main()
    {
        freopen("c17.in","r",stdin);
        freopen("c17.out","w",stdout);
        cin>>m>>n;
        n-=17;
        for(int i=0;i<m;i++)
        {
            scanf("%d",&x[i]);
        }
        sort(x,x+m);
        if(n<0)n=0;
        else
        {
            ans=1;
            cl(0,0,1);
        }
        cout<<ans;
        return 0;
    }

    清清正正射命丸文是也~

  • 相关阅读:
    转载文章----.NET 框架浅析
    转载文章----IL反编译利器——Ildasm.exe和Reflector.exe:
    转载文章----初识Ildasm.exe——IL反编译的实用工具
    北航物理实验
    计算机组成原理往年试题以及答案(tzf!!!)
    Java 往年试卷参考答案!!!
    算法导论期末考试英文练习题带答案!!!
    算法导论( FFT & 自动机 & 最优二叉搜索树 !!!)
    Java部分总结图片版2(已加上原图链接!!!)
    Java部分总结图片版(已经加上原图链接下载!!!)
  • 原文地址:https://www.cnblogs.com/Ayateriteri/p/5689676.html
Copyright © 2011-2022 走看看