zoukankan      html  css  js  c++  java
  • hdu 1796 How many integers can you find

    容斥原理!!

    这题首先要去掉=0和>=n的值,然后再使用容斥原理解决

    我用的是数组做的……

     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<algorithm>
     4 #include<iomanip>
     5 #include<cmath>
     6 #include<string>
     7 #include<vector>
     8 #define ll __int64
     9 using namespace std;
    10 int an[11],n,m,num,a[11];
    11 ll gcd(int a,int b)
    12 {
    13     int t;
    14     if(a<b) swap(a,b);
    15     while(b)
    16     {
    17         t=a;
    18         a=b;
    19         b=t%b;
    20     }
    21     return a;
    22 }
    23 ll lcm(int a,int b)
    24 {
    25     return a/gcd(a,b)*b;
    26 }
    27 ll cal()
    28 {
    29     ll quene[10000],sum=0;
    30     int t=0,k,i,j;
    31     quene[t++]=-1;
    32     for(i=0;i<num;i++)
    33     {
    34         k=t;
    35         for(j=0;j<k;j++)
    36         {
    37             if(quene[j]<0)
    38                 quene[t++]=lcm(-quene[j],an[i]);
    39             else quene[t++]=(-1)*lcm(quene[j],an[i]);
    40         }
    41     }
    42     for(i=1;i<t;i++)
    43         sum+=(n-1)/quene[i];
    44     return sum;
    45 }
    46 int main()
    47 {
    48     int i,j,t,k;
    49     while(cin>>n>>m)
    50     {
    51         num=0;k=0;
    52         for(i=0;i<m;i++)
    53         {
    54             cin>>t;
    55             if(t>0&&t<n)  an[num++]=t;
    56         }
    57         printf("%I64d
    ",cal());
    58     }
    59     return 0;
    60 }
    View Code
  • 相关阅读:
    Dockerfile文件详解
    docker-compose.yml文件
    Linux集中日志服务器rsyslog
    数据库连接池DBUtils使用
    js开关插件使用
    flask基础
    redis系列--深入哨兵集群
    Python算法基础
    redis系列--主从复制以及redis复制演进
    redis系列--redis4.0深入持久化
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3208348.html
Copyright © 2011-2022 走看看