随笔分类 - 模板
1
PAT 1003 Emergency(Dijstra算法解决)
摘要:1003 Emergency (25 分) 1003 Emergency (25 分) 1003 Emergency (25 分) As an emergency rescue team leader of a city, you are given a special map of your co
阅读全文
Calling Circles(UVa 247)(Floyd 算法)
摘要:用Floyd算法求出传递闭包,然后用dfs求出每条连通分量。注意其中用到的几个小技巧:
阅读全文
Floyd(求每2个点之间的最短路)
摘要:稍微改变即可求传递闭包,即关心两点之间是否有同路:
阅读全文
Bellman-Ford算法(在边权可正可负时求最短路)
摘要:使用FIFO队列实现:
阅读全文
Favorite Donut(HDU 5442)最小表示法+二分
摘要:题目给出一个字符串,由a~z表示甜度,随字典序增大,字符串首尾相连形成一个圈,要求从一个位置开始字典序最大的字符串,输出位置以及是顺时针还是逆时针表示。顺时针用0表示,逆时针用1表示。 此题只需要查找字符串的最大字典序排列即可,模拟对字符串的翻转以及排列操作,可以用二分来查找位置来节省时间。 最小表
阅读全文
Keuskal算法模板
摘要:int cmp(const int i, const int j) { return w[i]<w[j]; }///间接比较函数,w[i]表示边i权值 int find_set(int x) { return p[x] == x ? x : p[x] = find_set(p[x]);} int Kruskal(){ int ans = 0; for (int i =...
阅读全文
strstr函数的运用
摘要:strstr函数用于搜索一个字符串在另一个字符串中的第一次出现,该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。
阅读全文
无根树转有根树模板
摘要:vector G[maxn]; void read_tree(){ int u,v; scanf("%d",&n); for(int i = 0; i < n-1; i++){ scanf("%d%d",&u,&v); G[u].push_back(v);///输入u相邻的点v G[v].push_back(u); ...
阅读全文
Dijkstra(迪杰斯特拉)模板
摘要:直接将模板封装在结构体里面。
阅读全文
二分搜索以及查找区间的上下界
摘要:二分查找: 二分查找求下界: 二分查找求上界:
阅读全文
质因子分解(Pollard_Rho法)
摘要:LL Pollard_Rho(LL n, LL c) { LL x, y, d; LL i = 1, k = 2; x = y = rand() % n; do { i++; d = gcd(n + y - x, n); if(d > 1 && d = n) t = Pollard_Rho(n, ra...
阅读全文
米勒-拉宾素性测试
摘要:#include using namespace std; /** //普通快速幂 LL pow_mod(LL a, LL x, LL p) { LL res = 1; while(x) { if (x & 1) res = (unsigned long long)res * a % p; x >>= 1; a = (unsign...
阅读全文
简单矩阵快速幂(HDU Tr A 1575)
摘要:题目中所给的方阵就是一个矩阵,而就是只要将题目所给矩阵不断进行相乘即可,本题中我采用的是直接重载运算符*,使矩阵每一个都进行运算,可以简化为只对对角线上的元素进行运算。最后所得结果就只需将最终的矩阵上的对角线上的数相加即可。快速幂即是将指数进行质因子分解,从而减少运算,比如15=7*2+1,而7=3
阅读全文
矩阵快速幂(以HDU1757为例)
摘要:对于数据量大的求余运算,在有递推式的情况下,可以构造矩阵求解。 A - A Simple Math Problem A - A Simple Math Problem Lele now is thinking about a simple function f(x). If x < 10 f(x)
阅读全文
BFS模板
摘要:bool visit[maxn];///访问标记 const int dr[]= {-1,0,1,0,-1,1,-1,1}; ///向左上右下,左下,右上,右下,左上 const int dc[]= {0,1,0,-1,-1,1,1,-1}; struct node { int r; int c; int step; }; node input[maxn]; void b...
阅读全文
二叉树的非递归遍历
摘要:typedef struct BiTNode { char data; struct BiTNode *lchild, *rchild; ///左右孩子 } BiTNode,*BiTree; void PreOrder_Nonrecursive1(BiTree T) ///先序遍历的非递归 { if(!T) return ; ///如果结点为空,终止 ...
阅读全文
1
浙公网安备 33010602011771号