acm 算法模板 适合初学者使用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三角形面积计算 1 字典树模板 2 求线段所在直线 5 求外接圆 5 求内接圆 6 判断点是否在直线上 8 简单多边形面积计算公式 8 stein算法求最大共约数 9 最长递增子序列模板——o(nlogn算法实现) 9 判断图中同一直线的点的最大数量 10 公因数和公倍数 12 已知先序中序求后序 12 深度优先搜索模板 13 匈牙利算法——二部图匹配BFS实现 15 带输出路径的prime算法 17 prime模板 18 kruskal模板 19 dijsktra 22 并查集模板 23 高精度模板 24 三角形面积计算//已知三条边和外接圆半径,公式为s = a*b*c/(4*R) double GetArea(double a, double b, double c, double R) { return a*b*c/4/R; } //已知三条边和内接圆半径,公式为s = pr double GetArea(double a, double b, double c, double r) { return r*(a+b+c)/2; } //已知三角形三条边,求面积 double GetArea(doule a, double b, double c) { double p = (a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c)); } //已知道三角形三个顶点的坐标 struct Point { double x, y; Point(double a = 0, double b = 0) { ?? x = a; y = b; } }; double GetArea(Point p1, Point p2, Point p3) { double t = -p2.x*p1.y+p3.x*p1.y+p1.x*p2.y-p3.x*p2.y-p1.x*p3.y+p2.x*p3.y; if(t 0) t = -t; return t/2; } 字典树模板#include stdio.h #include string.h #include memory.h #define BASE_LETTER a #define MAX_TREE 35000 #define MAX_BRANCH 26 struct { ??? int next[MAX_BRANCH]; //记录分支的位置 ??? int c[MAX_BRANCH]; //查看分支的个数 ??? int flag; //是否存在以该结点为终止结点的东东,可以更改为任意的属性 }trie[MAX_TREE]; int now; void init() { now = 0; memset(trie[now], 0, sizeof(trie[now])); ??? now ++; } int add () { ??? memset(trie[now], 0, sizeof(trie[now])); ??? return now++; } int insert( char *str) { ??? int pre = 0, addr; ??? while( *str != 0 ) ??? { ??????? addr = *str - BASE_LETTER; ??????? if( !trie[pre].next[addr] ) ??????????? trie[pre].next[addr] = add(); ?? ??????? trie[pre].c[addr]++; ??????? pre = trie[pre].next[addr]; ??????? str ++; ??? } ??? trie[pre].flag = 1; ??? return pre; } int search( char *str ) { ??? int pre = 0, addr; ??? while( *str != 0 ) ??? { ??????? addr = *str - BASE_LETTER; ??????? if ( !trie[pre].next[addr] ) ??????????? return 0; ??????? pre = trie[pre].next[addr]; ??????? str ++; ??? } ??? if( !trie[pre].flag ) ??????? return 0; ??? return pre; } pku2001题,源代码: void check( char *str ) { int pre = 0, addr; while(*str != 0) { ?? addr = *str - BASE_LE

文档评论(0)

fc86033 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档