资源描述:
《acm_算法实用模板》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案ACMStandardCodeLibraryHuangWeiComputerScienceandEngineeringAssociationofProgramingInformationEngineeringCollegeHangzhouDianziUniversityApril,2007ACM算法模板集Contents精彩文档实用标准文案一.常用函数与STL二.重要公式与定理1.FibonacciNumber2.LucasNumber3.CatalanNumber4.StirlingNumber(SecondKind)5.BellNumber6.Stirl
2、ing'sApproximation7.SumofReciprocalApproximation8.YoungTableau9.整数划分10.错排公式11.三角形内切圆半径公式12.三角形外接圆半径公式13.圆內接四边形面积公式14.基础数论公式三.大数模板四.数论算法1.GreatestCommonDivisor最大公约数2.Prime素数判断3.SievePrime素数筛法4.ModuleInverse模逆元5.ExtendedEuclid扩展欧几里德算法6.ModularLinearEquation模线性方程(同余方程)7.ChineseRemainderTheo
3、rem中国余数定理五.图论算法1.最小生成树(Kruscal算法)2.最小生成树(Prim算法)3.单源最短路径(Bellman-ford算法)4.单源最短路径(Dijkstra算法)5.全源最短路径(Folyd算法)6.拓扑排序7.网络预流和最大流8.网络最小费用最大流9.网络最大流(高度标号预流推进)10.最大团11.最大二分图匹配(匈牙利算法)六.几何算法精彩文档实用标准文案1.几何模板2.球面上两点最短距离3.三点求圆心坐标一.专题讨论1.树状数组2.字典树3.后缀树4.线段树5.并查集6.二叉堆7.逆序数(归并排序)8.树状DP9.欧拉路10.八数码11.高斯
4、消元法12.字符串匹配(KMP算法)13.全排列,全组合第一章常用函数和STL一.常用函数#include int getchar( void ); //读取一个字符, 一般用来去掉无用字符精彩文档实用标准文案char *gets( char *str ); //读取一行字符串#include void * malloc( size_t size ); //动态内存分配, 开辟大小为 size 的空间void qsort( void *buf, size_t num, size_
5、t size, int (*compare)(const void *, const void *) ); //快速排序Sample:int compare_ints( const void* a, const void* b ) {int* arg1 = (int*) a; int* arg2 = (int*) b;if( *arg1 < *arg2 ) return -1;else if( *arg1 == *arg2 ) return 0;else return 1;}int array[] = { -2, 99
6、, 0, -743, 2, 3, 4 }; int array_size = 7; qsort( array, array_size, sizeof(int), compare_ints ); #include //求反正弦, arg∈[-1, 1], 返回值∈[-pi/2, +pi/2]double asin( double arg );//求正弦, arg为弧度, 弧度=角度*Pi/180.0, 返回值∈[-1, 1]double sin( double arg );//求e的arg次方double exp( double arg );//求
7、num的对数, 基数为edouble log( double num );//求num的根double sqrt( double num );//求base的exp次方double pow( double base, double exp );#include //初始化内存, 常用来初始化数组void* memset( void* buffer, int ch, size_t count );memset( the_array, 0, sizeof(the_array) );//printf是它的变形, 常用来将数据