UVA 10325

简介:

题目连接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=32762

题意:求1~n中不能被给定m个数中任意一个数整除的数的个数
分析:
和之前的例题非常像,我们可以 n –sum,sum表示所有能被这些数整除的数的个数。
sum = sum +/- n/某种组合的最小公倍数
在做的过程中我们需要枚举子集,枚举子集的时候我们可以用之前学过的二进制枚举的方法。
上代码:

#include <iostream>

using namespace std;
typedef long long LL;
LL gcd(LL m, LL n)
{
    if(n == 0)
    return m;
    return gcd(n, m%n);
}
LL lcm(LL m, LL n)
{
    return m/gcd(m, n)*n;
}
LL data[20];
int main()
{
    int m;
    LL n,ans;
    while(cin>>n>>m)
    {
        for(int i=0; i<m; i++)
          cin>>data[i];
        ans=0;
        for(int i=1; i<(1<<m); i++)
        {
            LL l=1,f=0;
            for(int j=0; j<m; j++)
            {
                if((1<<j)&i)
                {
                    l=lcm(l,data[j]);
                    if(l>n)
                    break;
                    f++;
                }
            }
            if(f&1)
            ans+=n/l;
            else
            ans-=n/l;
        }
        cout<<n-ans<<endl;
    }
    return 0;
}
目录
相关文章
uva10038 Jolly Jumpers
uva10038 Jolly Jumpers
43 0
UVa11776 - Oh Your Royal Greediness!
UVa11776 - Oh Your Royal Greediness!
56 0
|
算法
UVA题目分类
题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494...
1570 0
uva 11806 - Cheerleaders
点击打开链接 题意:在一个n行m列的矩形里面放k个相同的石子,要求第一行,最后一行,第一列,最后一列都要有石子。问有几种方法? 思路: 1 如果题目没有要求“第一行,最后一行,第一列,最后一列都要有石子”,那么答案就是C[n*m][k],我们用C[i][j]表示i个里面选择j个的组合数。
824 0
|
机器学习/深度学习
uva 11538 Chess Queen
点击打开链接 题意:给定一个n*m的矩阵,问有多少种方法放置两个相互攻击的皇后?规定在同一行同一列和同对角线的能够相互攻击 思路: 1 先考虑同一行的情况,n行就有n种情况,每一行有m*(m-1)种,总的是n*m*(m-1); 2 考虑同...
822 0
|
人工智能
uva 10189 Minesweeper
/* Minesweeper WA了n次才知道uva格式错了也返回wa没有pe啊尼玛 */ #include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;string.h&gt; using namespace std; char a[105][105]; int main() { int i,j,n,m,
940 0
|
JavaScript 定位技术
uva 10047 - The Monocycle
点击打开链接uva 10047 思路:bfs 分析: 1 题目给定一个起始的状态然后要求是否可以到达目标状态 2 这些状态包括了位置,方向,底面颜色。
851 0
|
人工智能
uva10382 Watering Grass
题意:有一块草坪,长为l,宽为w,再起中心线的不同位置处装有n个点状的喷水装置。每个喷水装置i可以将以它为中心,半径为ri的圆形区域润湿,请选择尽量少的喷水装置,把整个草坪全部润湿。 分析:对于直径小于宽度的喷水装置其实可以忽略,剩下的问题转换成了最小区间覆盖问题,即:用最少数量的区间去覆盖给定的...
820 0
uva10465Homer Simpson
题意:HM先生喜欢吃汉堡,有两种汉堡,每种无限多个,吃完第一种的汉堡一个需要m时间,第二种需要n时间,HM先生饭量很大可以不停的吃,给定一个时间t,在t时间段内希望HM先生吃尽量多的汉堡,并且空余出来的时间要尽量少 分析:是一个只有两种元素的完全背包问题。
728 0
uva10859Placing Lampposts
题意:给你一个n个点m条边的无向无环图,在尽量少的节点上放灯,使得所有边都被照亮,每盏灯将照亮以他为一个端点的所有边,在灯的总数最小的前提下,被两盏灯同时照亮的边数应当尽量大。 分析:d(i,j)表示i的父节点放灯的状态为j(1表示放,0不放),以i为根的树的最小x值     x=Ma+c, a表...
793 0