POJ 1091 跳蚤(数论+容斥)
来源:互联网 发布:ad hoc网络 举例 编辑:程序博客网 时间:2024/05/23 01:23
Description
有n个不超过m的正整数a1,…,an,问有多少种满足条件的a序列使得gcd(a1,…,an)=1
Input
两个整数n和m(n<=15,m<=10^8)
Output
满足条件的a序列个数
Sample Input
2 4
Sample Output
12
Solution
总方案数为m^n,不满足条件的方案是当这n个数都含有m的某一个因子,对于某一个因子p,不满足条件的方案数为(m/p)^n,由容斥原理知
Code
#include<cstdio>#include<iostream>using namespace std;typedef long long ll;ll n,m,ans;ll pow(ll a,ll b){ ll ans=1ll; while(b) { if(b&1)ans=ans*a; a=a*a; b>>=1; } return ans;}int main(){ while(~scanf("%lld%lld",&n,&m)) { ans=pow(m,n); ll mm=m; for(ll i=2;i*i<=mm;i++) if(m%i==0) { ll temp=pow(i,n); ans=ans/temp*(temp-1); while(m%i==0)m/=i; } if(m>1)ans=ans/pow(m,n)*(pow(m,n)-1); printf("%lld\n",ans); } return 0;}
0 0
- poj 1091-跳蚤(数论+容斥)
- POJ 1091 跳蚤(数论+容斥)
- poj 1091 跳蚤 (数论,容斥原理)
- POJ 1091 跳蚤 数论-容斥原理、扩展欧几里得
- POJ 1091 跳蚤 数论-容斥原理、扩展欧几里得
- poj 1091 跳蚤(容斥原理)
- PKU 1091 跳蚤 数论 容斥原理
- poj 1091 跳蚤(不定方程+容斥)
- poj 1091 跳蚤(分解质因数+容斥)
- 跳蚤 - POJ 1091 容斥原理
- POJ 1091 跳蚤 容斥原理
- POJ 1091 跳蚤(容斥原理)
- POJ 1091 跳蚤 【容斥】【质因数分解】
- poj 1091 跳蚤 扩展欧几里得性质+容斥原理
- poj 1091 跳蚤(最大公约数原理+容斥原理)
- poj 1091 跳蚤 扩展欧几里得+容斥原理
- POJ 1091 跳蚤 [容斥原理]【组合数学】
- POJ 1091 - 跳蚤 - 容斥原理 +扩展欧几里德+高精度
- c语言的结构体详解
- Salesforce开发工具之Metaforce - 全局元数据搜索
- 38.Xcode6中自动布局autolayout和sizeclass的使用
- Openlayers中的比例尺(scale)和分辨率(resolution)
- JAVA常量(字面值)表示方法
- POJ 1091 跳蚤(数论+容斥)
- iOS页面2中不同的弹窗
- java实现字符串指定的部分进行反转
- java中的final变量
- mysql+uwsgi+django+nginx部署记录
- Quartz入门(一)-----实现定时功能
- 整理 javaweb 连接数据库方法
- 逻辑斯蒂回归1 -- 逻辑斯蒂回归模型
- 悬浮框的探究