摘要: 1 for(int i=2;in)break;//超过n 5 vis[i*p[j]]=true; 6 if(i%p[j]==0)break;//保证每个合数被它最小的质因数筛掉(保证算法O(n)复杂度) 7 } 8 }阅读全文
posted @ 2016-11-17 15:12 WJ-Ting 阅读(24) 评论(0) 编辑
摘要: 最近公共祖先 对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。阅读全文
posted @ 2016-11-17 12:18 WJ-Ting 阅读(56) 评论(0) 编辑
摘要: LIS(Longest Increasing Subsequence)最长上升(不下降)子序列。 1. O(n^2) 2. O(n logn)阅读全文
posted @ 2016-11-09 20:19 WJ-Ting 阅读(56) 评论(0) 编辑
摘要: 线段树 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(阅读全文
posted @ 2016-11-06 18:58 WJ-Ting 阅读(42) 评论(0) 编辑
摘要: 二叉树 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。 二叉树常被用于实现二叉查找树和二叉堆。 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。 二叉树在图论中是阅读全文
posted @ 2016-11-05 15:52 WJ-Ting 阅读(98) 评论(0) 编辑
摘要: 二分图 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 区别二分图,关键是看点集是否能分成两个独立的点集。 二分图匹配(匈牙利算法) 如图:阅读全文
posted @ 2016-11-05 09:26 WJ-Ting 阅读(26) 评论(0) 编辑
摘要: 奖金【题目描述】由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,Yali Company总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工a的奖金应该比b高!阅读全文
posted @ 2016-11-04 11:28 WJ-Ting 阅读(117) 评论(0) 编辑
摘要: 拓扑排序 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。 1. 有向无环图 在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点阅读全文
posted @ 2016-11-04 10:45 WJ-Ting 阅读(202) 评论(0) 编辑
摘要: OpenJudge 799:Heavy Transportation 总时间限制: 3000ms 内存限制: 65536kB 描述BackgroundHugo Heavy is happy. After the breakdown of the Cargolifter project he can 阅读全文
posted @ 2016-11-03 14:17 WJ-Ting 阅读(46) 评论(0) 编辑
摘要: OpenJudge 726:ROADS 总时间限制: 1000ms内存限制: 65536kB OpenJudge 726:ROADS 总时间限制: 1000ms内存限制: 65536kB 描述N cities named with numbers 1 ... N are connected with阅读全文
posted @ 2016-11-03 11:14 WJ-Ting 阅读(39) 评论(0) 编辑