UVA 10325(容斥原理)
2018-01-27 13:54
288 查看
/*
UVA 10325
题目大体就是说
给你一个数n,再给你m个数
问你1~n之中有多少个数与这m个数都互质
输入之后直接用容斥原理就行了
顺便记录一下
if(i&(1<<j))与if(((i>>j)&1)==1)效果是一样的
*/
#include<iostream>
#include<algorithm>
#include<string.h>
#include<string>
#include<stdio.h>
#include<math.h>
#define ll long long
#define INF 2147483647
#define N 50
#define PI acos(-1)
#define EPS 1e-8
using namespace std;
ll gcd(ll a,ll b)
{
return b?gcd(b,a%b):a;
}
ll lcm(ll a,ll b)
{
return a/gcd(a,b)*b;
}
int main()
{
ll n,m;
while(cin>>n>>m)
{
ll a[20];
for(int i=1;i<=m;i++)
cin>>a[i];
ll sum=0;
for(int i=1;i<(1<<m);i++)
{
ll res=1,flag=0;
for(int j=1;j<=m;j++)
{
if((((i>>(j-1)))&1)==1)
{
res=lcm(res,a[j]);
if(res>n)
break;
flag++;
}
}
if(res>n)
continue;
if(flag%2==0)
sum=sum-n/res;
else
sum=sum+n/res;
}
cout<<n-sum<<endl;
}
return 0;
}
UVA 10325
题目大体就是说
给你一个数n,再给你m个数
问你1~n之中有多少个数与这m个数都互质
输入之后直接用容斥原理就行了
顺便记录一下
if(i&(1<<j))与if(((i>>j)&1)==1)效果是一样的
*/
#include<iostream>
#include<algorithm>
#include<string.h>
#include<string>
#include<stdio.h>
#include<math.h>
#define ll long long
#define INF 2147483647
#define N 50
#define PI acos(-1)
#define EPS 1e-8
using namespace std;
ll gcd(ll a,ll b)
{
return b?gcd(b,a%b):a;
}
ll lcm(ll a,ll b)
{
return a/gcd(a,b)*b;
}
int main()
{
ll n,m;
while(cin>>n>>m)
{
ll a[20];
for(int i=1;i<=m;i++)
cin>>a[i];
ll sum=0;
for(int i=1;i<(1<<m);i++)
{
ll res=1,flag=0;
for(int j=1;j<=m;j++)
{
if((((i>>(j-1)))&1)==1)
{
res=lcm(res,a[j]);
if(res>n)
break;
flag++;
}
}
if(res>n)
continue;
if(flag%2==0)
sum=sum-n/res;
else
sum=sum+n/res;
}
cout<<n-sum<<endl;
}
return 0;
}
相关文章推荐
- UVA 10325 The Lottery(容斥原理)
- UVA10325 The Lottery(容斥原理)
- UVa 10325 The Lottery 容斥原理
- UVA 10325 lottery 容斥原理
- uva 10325 The Lottery 枚举子集+容斥原理
- UVA.10325 The Lottery (组合数学 容斥原理 二进制枚举)
- UVA 10325 (容斥原理)
- UVA 10325 The Lottery (组合数学,容斥原理,二进制枚举)
- UVA 10325 The Lottery( 容斥原理)
- UVA 10325 lottery 容斥原理
- UVA - 10325 The Lottery(容斥原理)
- UVA 10325 The Lottery( 容斥原理)
- UVA 10325 lottery 容斥原理
- uva 10325 The Lottery(组合数学-容斥原理)
- UVA 10325 The Lottery(容斥原理)
- uva 10325 The Lottery(组合数学-容斥原理)
- UVA10325 The Lottery(容斥原理)
- uva 10325 The Lottery (容斥原理)dfs枚举 或二进制枚举
- uva 10325 容斥原理
- UVa10325 - The Lottery(容斥原理)