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;
        }
    
    }
    
    
  • 相关阅读:
    d3js 添加数据
    d3js 画布 概念
    Python中的 socket示例
    swift学习笔记
    加密原理介绍,代码实现DES、AES、RSA、Base64、MD5
    socket编程中客户端常用函数
    WBS 与 甘特图
    C/C++ 数据结构之算法
    Linux集群服务 LVS
    Linux内核架构与底层--读书笔记
  • 原文地址:https://www.cnblogs.com/waryan/p/13336696.html
Copyright © 2011-2022 走看看