zoukankan      html  css  js  c++  java
  • NC15079容斥原理

    容斥原理

    [|A_1cup A_2cup A_3 cup cup cup A_n|=sum_{i=1}^n{|A_i|}-sum_{1leq ileq jleq n}{|A_icap A_j|}+quad+(-1)^r|A_1cap A_2cap A_3capquadcap A_n| ]

    链接:https://ac.nowcoder.com/acm/problem/15079
    来源:牛客网

    题目描述

    给出一个数n,求1到n中,有多少个数不是2 5 11 13的倍数。

    输入描述:

    本题有多组输入
    每行一个数n,1<=n<=10^18.
    

    输出描述:

    每行输出输出不是2 5 11 13的倍数的数共有多少。
    

    思路

    容易短缺的东西,注意在求解的时候把每个都用组合数算一下,看一下有没有短缺。

    #include<bits/stdc++.h>
    #define INF 0x3f3f3f3f
    #define DOF 0x7f7f7f7f
    #define endl '
    '
    #define mem(a,b) memset(a,b,sizeof(a))
    #define debug(case,x); cout<<case<<"  : "<<x<<endl;
    #define open freopen("ii.txt","r",stdin)
    #define close freopen("oo.txt","w",stdout)
    #define IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
    #define pb push_back
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> pii;
    typedef pair<long long, long long> PII;
    const int maxn = 1e6 + 10;
    const ll mod=1e9+7;
    
    
    
    int main(){
        ll n;
        while(cin>>n){
            ll ans=0;
            ans=n/2+n/5+n/11+n/13;
            ans=ans-(n/(2*5)+n/(2*11)+n/(2*13)+n/(5*11)+n/(5*13)+n/(11*13));
            ans=ans+(n/(2*5*11)+n/(2*5*13)+n/(5*11*13)+n/(2*11*13));
            ans-=n/(2*5*11*13);
            cout<<n-ans<<endl;
        }
    
    }
    
    
  • 相关阅读:
    HBase分布式集群搭建过程
    HBase基础知识
    HBase伪分布搭建
    搭建ZooKeeper集群环境
    hadoop集群环境搭建-hadoop之伪分布搭建环境
    乱序数组找出前面的都比他小后面的都比他大的数
    sikuli简介
    ZooKeeper 应用场景
    svmrank原理
    Latex汇总
  • 原文地址:https://www.cnblogs.com/waryan/p/13336696.html
Copyright © 2011-2022 走看看