容斥原理学习之路【容斥原理】
来源:互联网 发布:哥布林升级数据 编辑:程序博客网 时间:2024/05/22 01:40
2014年12月8-14日,我的目标是完全搞懂容斥原理,顺便整理一下模板!
容斥原理在数学上应该算是很容易,这里就不再叙述!
以下面的一道题目为例:给出2个数字m,n;求1-m中有多少个数字与n互质(保证所有数字不超过int型)!
数组实现
#include<cstdio>int p[10],k;//p数组用来保存n的质因子,int型n不会超过10个void getp(int n){ k=0; for(int i=2;i*i<=n;i++){ if(n%i==0) p[k++]=i; while(n%i==0) n/=i; } if(n>1) p[k++]=n;//防止有比根号n大的质因子,k保存质因子个数}int nop(int m){ int i,j,que[10000],top=0,t,sum; que[top++]=-1;//队列数组保存n所有质因子任意不相同组合的乘积 for(i=0;i<k;i++){ t=top;//t保存当前que长度,方便下面的循环来使用 for(j=0;j<t;j++){ que[top++]=que[j]*p[i]*(-1); }//质因子的个数:奇加偶减,因此乘以-1来换号 } for(i=1,sum=0;i<top;i++)//sum来累加所有个数 sum+=m/que[i]; return sum;}int main(){ int n,m; while(scanf("%d%d",&m,&n)==2){ //求1-m中多少个数字与n互质 getp(n);//求n的质因子 printf("%d\n",m-nop(m));//总数减去 } return 0;}
1 0
- 容斥原理学习之路【容斥原理】
- 容斥原理学习
- 容斥原理学习
- 容斥原理的学习
- 容斥原理 学习 M
- 容斥原理
- 容斥原理 POJ3904
- 【容斥原理】八
- 【八】容斥原理
- 广义容斥原理
- 容斥原理
- 容斥原理 专题
- 容斥原理 专题
- hdu4390 容斥原理
- hdu1695 容斥原理
- HDU3929(容斥原理)
- 整除 容斥原理
- HDU4390(容斥原理)
- GitHub秘籍
- Spring-学习笔记(ContextLoaderListener)
- 从尾到到打印链表
- eclipse自动切换到dubug视图,设置eclipse调试自动跳转
- Effective C++ Item05 Note
- 容斥原理学习之路【容斥原理】
- C++ 实参和形参 交换变量值
- tap gesture recognizer关联到一image view笔记********
- 从点滴看管理之电话沟通技巧
- 有奖征文--我亲历的京东发展史
- 给SHBrowseForFolder 添加“新建文件夹”按钮
- Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)
- 段式存储管理
- JS获取当前时间或者把毫秒转换成yyyy-MM-dd的格式