[NOIP模拟][容斥原理][快速幂]Heal
来源:互联网 发布:maven java项目打包 编辑:程序博客网 时间:2024/05/09 06:14
样例输入1:
2 3
样例输出1:
8
样例输入2:
8 8
样例输出2:
16711680
题目分析:
考场总结:对于这道题无话可说,有一种难度叫读不懂题。考试时前面题花的时间比较多,然后面对这道长达2页的题(以某种鬼畜的言情风格写了一大堆废话包裹题面),我愣是没有读懂,实际上这道题的题目要求转化一下,就比较简单(以前还做过一道这样的题,那道题的题面没有这么复杂),比前面的两道都还简单·····所以啊,一道题不够难,可以通过题面来增加其难度。
分析:所以这道题最后的意思就是求给定m,选取n个小于等于m的数(可以相同),使得这个n+1数整体互质及gcd为1,有多少种组合。那么我们可以用整体减不互质的组合。整体是
附代码:
#include<iostream>#include<cstring>#include<string>#include<cstdlib>#include<cstdio>#include<ctime>#include<cmath>#include<iomanip>#include<cctype>#include<algorithm>using namespace std;const int mod=1e9+7;const int N=1e6;int tot,num;long long n,m,q[N],zhi[N],ans,p;long long ksm(long long x,long long y){ long long ret=1; x%=mod; for(;y;y/=2,x=(x*x)%mod) if(y&1) ret=(ret*x)%mod; return ret;}void dfs(int cnt,int po,long long sum)//求一定个数质因子的乘积{ if(cnt==0) { q[++tot]=sum; return; } for(int i=po;i<=num;i++) dfs(cnt-1,i+1,sum*zhi[i]);}void find(int x,int ci)//容斥{ if(x==0) return; tot=0; dfs(num-x+1,1,1); for(int i=1;i<=tot-cnt+1;i++) ans=(ans+mod+ksm(m/q[i],n)*ci)%mod; find(x-1,ci*(-1));}int main(){ //freopen("heal.in","r",stdin); //freopen("heal.out","w",stdout); scanf("%I64d%I64d",&n,&m); p=m; for(long long i=2;i*i<=p;i++)//求m的质因子 { if(p%i==0) { zhi[++num]=i; while(p%i==0) { p/=i; } } } if(p>1) zhi[++num]=p; ans=ksm(m,n); find(num,-1); printf("%I64d",ans); return 0;}
阅读全文
0 0
- [NOIP模拟][容斥原理][快速幂]Heal
- [NOIP模拟题][LIS][同余最短路][DP][矩阵快速幂][容斥原理]
- NOIP 模拟题 C17 [容斥原理]
- NOIP模拟题 2016.11.15 [LIS] [spfa] [同余最短路] [矩阵快速幂] [容斥原理] [数学]
- heal gcd+容斥
- [NOIP模拟] Heal 再见POJ跳蚤
- [NOIP模拟][LIS][数列映射][最短路][数论+图论][矩阵乘法][容斥原理]
- 【NOIP模拟题】【容斥原理】【数学归纳法】2016.11.18 第三题 题 题解
- NOIP模拟赛 数论专题 扩展欧几里得 + 组合数 + 容斥原理
- ZOJ 3868(容斥原理+快速幂)
- NOIP模拟题 [LIS][建图][递推][容斥]
- 10.3 NOIP模拟赛 DP + 最小生成树 + 容斥
- [noip模拟赛]求和(快速幂)
- 【Noip模拟】【dp】【LIS】【矩阵快速幂】
- [NOIP2017模拟]Heal
- Gym - 100625F Count Ways 快速幂+容斥原理
- HDU 4059 容斥原理+快速幂+逆元
- CF GYM 100548 容斥原理+快速幂+逆元
- 英特尔呛声NVIDIA:处理器撕逼之战,谁更有底气?
- 在angualr4中年引入ng-bootstrap
- PTA 7-1 树的同构(25 分)25分代码 结构体保存结点
- Dlib matrix<rgb_pixel>和opencv Mat 数据转换
- 复数的抽象数据类型实现(引用参数)
- [NOIP模拟][容斥原理][快速幂]Heal
- [Git报道.2]了解运行Git前的配置信息(msysGit)
- 可凝儿DIO系列 亮肤滋养润体乳
- (三)WebView实践之性能优化
- Django html链接static文件
- 浅谈 Java 中的排序
- 18.1.Struts_不常用通用标签
- AS中使用gradle升级gradle版本笔记
- 微鲸电视斩获华人设计最高荣誉”金点奖“