将m质因子分解,然后枚举选取的质因子个数i进行容斥,每种情况进行一次dfs即可

dfs结束标记:当质因子个数达到i时退出递归,同时累加该解对应的方案数

/*
给定n,m
共有n个数的数组a,不超过m
m^n减掉 gcd(a)>1的情况
先把m质因数分解
然后枚举不同的质因子个数即可
*/
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define ll long long ll n,m,p[],mm,ans,sum; ll Pow(ll a,ll b){
ll res=;
while(b){
if(b%)res=res*a;
b>>=;a=a*a;
}
return res;
}
void divide(){
mm=;ll tmp=m;
for(int i=;i*i<=m;i++)
if(tmp%i==){
p[++mm]=i;
while(tmp%i==)tmp/=i;
}
if(tmp>)p[++mm]=tmp;
} int a[];//临时数组用来存用到的质因子
void get_sum(int pos,int cnt,int num){
if(cnt>num){//搜出了一组解
ll tmp=m;
for(int i=;i<cnt;i++)tmp/=a[i];
sum+=Pow(tmp,n);
return;
}
for(int i=pos;i<=mm;i++)//枚举下一个位置
a[cnt]=p[i],get_sum(i+,cnt+,num);
} int main(){
while(cin>>n>>m){
ans=Pow(m,n);
divide();//分解质因子m
for(int i=;i<=mm;i++){
sum=;
get_sum(,,i);
if(i&) ans-=sum;//关于质因子个数的容斥
else ans+=sum;
}
cout<<ans<<endl;
}
}

容斥原理——poj1091的更多相关文章

  1. 【容斥原理】【分解质因数】poj1091 跳蚤

    题意转化为求一个线性组合a1*x1+a2*x2+...+an*xn+m*xn+1=1在什么时候可以有解.(ai在1~m的范围内任取) 易得当且仅当gcd(a1,a2,...,an)=1时可能有解. 然 ...

  2. poj1091:跳蚤【容斥原理】

    题目大意:中文题就不翻译了 思路:假设跳蚤选择X1个第一张卡片,X2个第二张卡片...Xn个第n张卡片,Xn+1张写着m的卡片,那么就可以列出方程:a1*X1+a2*X2+…+an*Xn+m*X(n+ ...

  3. 【poj1091】 跳蚤

    http://poj.org/problem?id=1091 (题目链接) 题意 给出一张卡片,上面有n+1个数,其中最大的数为m,每次可以向前或者向后走卡片上面的步数.问有多少种方案选出n个数组成一 ...

  4. hdu4059 The Boss on Mars(差分+容斥原理)

    题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设  则    为一阶差分. 二阶差分: n阶差分:     且可推出    性质: 1. ...

  5. hdu2848 Visible Trees (容斥原理)

    题意: 给n*m个点(1 ≤ m, n ≤ 1e5),左下角的点为(1,1),右上角的点(n,m),一个人站在(0,0)看这些点.在一条直线上,只能看到最前面的一个点,后面的被档住看不到,求这个人能看 ...

  6. BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 4032  Solved: 1817[Submit] ...

  7. BZOJ 2440: [中山市选2011]完全平方数 [容斥原理 莫比乌斯函数]

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3028  Solved: 1460[Submit][Sta ...

  8. ACM/ICPC 之 中国剩余定理+容斥原理(HDU5768)

    二进制枚举+容斥原理+中国剩余定理 #include<iostream> #include<cstring> #include<cstdio> #include&l ...

  9. HDU5838 Mountain(状压DP + 容斥原理)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5838 Description Zhu found a map which is a N∗M ...

随机推荐

  1. Day15:Python 【模块】及__name__:

    什么是模块: 在Python中,随着这代码的撰写,代码越来越长,所以产生了,模块这个概念,模块是什么?模块就是一个.py文件,在撰写代码时,我们把不同的功能的代码封装到一个.py文件里,用得时候导入 ...

  2. java 传入多个参数时报"Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1,..." 解决方案

    @Select("SELECT id FROM ae_post ORDER BY id DESC LIMIT #{page},#{size}") List<Post> ...

  3. spring boot资源文件配置读取

    一般业务配置,尽量新建自己的配置文件,来读取,而不是配置在application.properties或application-*.properties或yml/yaml配置中. applicatio ...

  4. 天道神诀---DHCP服务(下篇)

    DHCP作用域详解 subnet  定义一个作用域 netmask  定义作用域的掩码 range  允许发放的IP范围 option routers 指定网关地址 option domain-nam ...

  5. luogu3384 /// 树链剖分+线段树模板

    题目大意: https://www.luogu.org/problemnew/show/P3384 树链剖分的讲解 两个dfs() 修改 查询 很详细很好理解 https://www.cnblogs. ...

  6. POJ 3525 /// 半平面交 模板

    题目大意: 给定n,接下来n行逆时针给定小岛的n个顶点 输出岛内离海最远的点与海的距离 半平面交模板题 将整个小岛视为由许多半平面围成 那么以相同的比例缩小这些半平面 一直到缩小到一个点时 那个点就是 ...

  7. 使用Element的upload上传组件,不使用action属性上传

    1.需要实现的效果如下图,在点击提交的时候再提交file数据,和其他数据统一上传,我把file转换成了base64的格式,可以再上传之前显示缩略图 2.代码分析 action属性值为"#&q ...

  8. leetcode-157周赛-5214-最长定差子序列

    题目描述: class Solution: def longestSubsequence(self, arr: List[int], difference: int) -> int: dp = ...

  9. 【JZOJ6384】珂学家

    description analysis 注意配出来的饮料不可以再配成其他饮料,所以肯定有\(O(n^2)\)的枚举 而且可口度两两互不相同,搞得我以为这是神仙题 考虑把两个试剂\([l_1,r_1] ...

  10. 服务器断过一次电之后,mysql启动不了了

    公司内部服务器,周末会直接拉闸断电,之前也没问题,但这次回来发现mysql启动不了了. service mysqld start 提示: Starting MySQL.The server quit ...