
ACM模板
Kiritow
热爱代码,也热爱生活 / C++ / NodeJS / Golang后台开发 / Python数据分析
展开
-
ACM模板——Floyd算法
Floyd算法是用于求解所有点对之间的最短距离,如果只需要求一个起点到所有其他点的最短距离应该使用Dijstra算法。Floyd核心Logic注:m[f][t] 意为 从f出发到t点的距离. 输入可能是边的形式或者是图的形式,需要灵活处理。 for(int k=1;k<=n;k++) { for(int f=1;f<=n;f++)原创 2016-08-03 18:57:41 · 662 阅读 · 0 评论 -
ACM模板——KMP算法
为公主殿下而战!原创 2016-08-13 11:51:12 · 534 阅读 · 0 评论 -
ACM模板——区间问题(线段树 RMQ-ST)模板
非常好用的线段树模板!原创 2016-08-11 11:00:44 · 579 阅读 · 0 评论 -
ACM模板——SPFA算法
SPFA ! Work as Dijkstra , faster than Floyd !原创 2016-08-22 13:38:59 · 930 阅读 · 0 评论 -
ACM模板——各种各样的线段树
线段树,区间更新线段树,属性线段树,可合并线段树,LCIS&线段树原创 2016-08-15 13:14:34 · 3209 阅读 · 0 评论 -
ACM模板——最长公共子序列 LCS
LCS原创 2016-08-05 13:09:06 · 937 阅读 · 0 评论 -
ACM模板——快速判断素数
提供: Mr. Coffee//Written by Coffee. 判断素数bool isPrime(int num){ if (num == 2 || num == 3) { return true; } if (num % 6 != 1 && num % 6 != 5) { return false; } for (int i = 5; i*i <= num;原创 2016-08-03 12:35:31 · 2772 阅读 · 0 评论 -
ACM模板——快速幂
//From Baidu. 快速幂int PowerMod(int a, int b, int c){ int ans = 1; a = a % c; while(b>0) { if(b % 2 == 1) ans = (ans * a) % c; b = b/2; a =原创 2016-08-03 12:33:03 · 566 阅读 · 0 评论 -
ACM模板——约瑟夫问题
///约瑟夫问题,n个人,查m个数int JosephusProblem_Solution4(int n, int m){ if(n < 1 || m < 1) return -1; vector f(n+1,0); for(unsigned i = 2; i <= n; i++) f[i] = (f[i-1] + m) % i; return f[n];}原创 2016-08-03 12:32:01 · 642 阅读 · 0 评论 -
ACM模板——DP求解最长子段 最大子矩阵
DP方法求解最长子段,复杂度O(N)不需要求最长子段起终点int MaxSum(int n,int *a){ int sum=NINF,b=0; for(int i=0; i<n; i++) { if(b>0) { b+=a[i]; } else {原创 2016-08-02 15:08:53 · 623 阅读 · 0 评论 -
ACM中关于无穷常数的设置
无穷大const int INF = 0x3f3f3f3f;这样设置的好处是可以通过memset直接对连续的内存进行无穷大初始化,如下memset(blockptr,0x3f,blocksize);无穷小const int NINF = -INF -1;const int NINF = 0xc0c0c0c0;与无穷大类似,可以使用memset对连续内存进行无穷小初原创 2016-08-02 15:00:11 · 2000 阅读 · 0 评论 -
ACM模板——最长公共上升子序列 LCIS
LCIS原创 2016-08-05 13:11:39 · 562 阅读 · 0 评论 -
ACM模板——最长上升子序列(LIS)
最长上升子序列原创 2016-08-05 11:33:45 · 2072 阅读 · 0 评论