一些小东西- 二分,海伦公式,最大公约数,扩展欧几里德,并查集,优先队列,求x!中p的个数
来源:互联网 发布:大ip什么意思网络用语 编辑:程序博客网 时间:2024/04/28 21:21
int bin(int low, int high,int key,int a[]){ while(low < high){ int mid = (low + high) >> 1; if(a[mid] < key) low = mid + 1; else high = mid; } return low;}
返回的是你要找的key的最小下标。
如果key在a数组里面没有,那么,如果key小于a里面最小的元素,则返回0;
如果key大于a里面最大的元素,则返回a的最大下标。
三分:
void thir(double low,double high){ double m1,m2; while(low + eps < high){ m1 = (low + high) / 2.0; m2 = (m1 + high) / 2.0; if(cal(m1) <= cal(m2)) high = m2; else low = m1; } printf("Case #%d: %d\n",ca,int(cal(low)+0.5));}
求四边形的海伦公式。
double p = (a + b + c + d) * 1.0 / 2.0; 条件: p >= a && p >= b && p >= c && p >= d;
double area = sqrt( 1.0 * (p - a) * (p - b ) * (p - c) * (p - d) );
最大公约数:
int gcd(inta,int b)
{ return !b?a:gcd(b,a%b); }
扩展欧几里德:poj 1061 1006
int exGcd(int a, int b, int &x, int &y) { if(b == 0) { x = 1; y = 0; return a; } int r = exGcd(b, a % b, x, y); int t = x; x = y; y = t - a / b * y; return r; }
并查集:并查集的时候要判断一下是不是在同一个集合。
int find(int x){ return x==p[x] ? x : p[x]=find(p[x]);}
优先队列
priority_queue <int, vector<int> ,greater <int> > q;
求x!当中含有多少factor。
for(k = factor; k <= x; k *= factor) sum+= x/k;
其中factor是质因子,sum就是x!的该因子的个数了。
- 一些小东西- 二分,海伦公式,最大公约数,扩展欧几里德,并查集,优先队列,求x!中p的个数
- 求2个数的最大公约数--欧几里德算法
- 用扩展的欧几里德算法求最大公约数以及逆元
- 求最大公约数的欧几里德算法
- poj 2524(并查集-求连通子集的个数)
- 并查集(小米面试题求朋友圈的个数)
- 并查集(求朋友圈的个数)
- hdu 1232 并查集 求连通分量的个数
- c语言:用海伦公式求三角形的面积
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法 求最大公约数
- 欧几里德算法--求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德求最大公约数
- 数据库还原备份文件
- 如何修改skype数据文件(聊天记录)的路径
- 给页面中功能点加上快捷键
- Java对数据库进行事务处理(批量删除操作)
- java文件打包下载
- 一些小东西- 二分,海伦公式,最大公约数,扩展欧几里德,并查集,优先队列,求x!中p的个数
- 4.6.2 创建表变量来保存临时结果集
- eclipse更新ADT为20.0.2之后发现不能new android application project
- 在GNU/LINUX系统下,将root帐号的邮件转到到其它用户/邮箱?
- C#中 for与foreach的效率比较
- 有用的linux命令,时时勤拂拭,呵呵
- 小巧通用的div弹出框
- 黑马程序员C#常用的异常处理总结
- cocos2d-x CCFlipX的使用