摘要: #include using namespace std; string mob[300010que; for(int i=0;i>n and n){ memset(num,0,sizeof(num)); memset(ans,0,sizeof(ans)); memset(ch,0,sizeof(ch)); memset(... 阅读全文
posted @ 2019-03-13 21:59 Isaunoya 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 一、二分图 二、定理: 三、二分图判定: 四、匹配: 五、最大匹配 六、匈牙利算法 1、算法描述: 阅读全文
posted @ 2019-03-13 21:53 Isaunoya 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 浅析字符串哈希 哈希其实是所有字符串操作中,笔者认为最简单的操作了(except输入输出qwq)。哈希的过程,其实可以看作对一个串的单向加密过程,并且需要保证所加的密不能高概率重复(就像不能让隔壁老王轻易地用它家的钥匙打开你家门一样qwq),通过这种方式来替代一些很费时间的操作。 比如,最常见的,当 阅读全文
posted @ 2019-03-13 21:51 Isaunoya 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 原题 首先tarjan求割点的重点就是dfn和low数组的理解。 dfn[i]就是时间戳,即在什么时刻搜索到了点i, low[i]则是i点能回溯到的dfn最小的祖先, 搜索的时候判断一下当对于点x存在儿子节点y,使得dfn[x]<=low[y]则x一定是割点。 因为只要x的子节点不能回溯到x的上面, 阅读全文
posted @ 2019-03-13 21:48 Isaunoya 阅读(229) 评论(0) 推荐(1) 编辑
摘要: 裴蜀定理内容 ax+by=c,x∈Z∗,y∈Z∗成立的充要条件是gcd(a,b)∣c。Z∗表示正整数集。 证明 设s=gcd(a,b),显然s∣a,并且s∣b 又因为x,y∈Z∗ 所以s∣ax,s∣by 显然要使得之前的式子成立,则必须满足c是a和b的公约数的倍数 又因为x和y是正整数 所以c必然是 阅读全文
posted @ 2019-03-13 21:44 Isaunoya 阅读(934) 评论(0) 推荐(0) 编辑
摘要: ST表 ST表的功能很简单 它是解决RMQ问题(区间最值问题)的一种强有力的工具 它可以做到O(nlogn)O(nlogn)预处理,O(1)O(1)查询最值 算法 ST表是利用的是倍增的思想 拿最大值来说 我们用Max[i][j]Max[i][j]表示,从ii位置开始的2^j2j个数中的最大值,例如 阅读全文
posted @ 2019-03-13 21:41 Isaunoya 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 树状数组或者二叉索引树也称作Binary Indexed Tree,又叫做Fenwick树;它的查询和修改的时间复杂度都是log(n),空间复杂度则为O(n),这是因为树状数组通过将线性结构转化成树状结构,从而进行跳跃式扫描。通常使用在高效的计算数列的前缀和,区间和。 其中a数组就是原数组,c数组则 阅读全文
posted @ 2019-03-13 21:26 Isaunoya 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 这个的算法是 O(n log log n) 两只log 两只log 跑的快~ 接近线筛 线筛太麻烦了。。主要是这个算法比较简便 线筛不会重复筛选 而这个有一部分是要重复筛选的 下面来看真的线筛。。 “最小质因数 × 最大因数(非自己) = 这个合数” 的途径删掉。由于每个数只被筛一次,时间复杂度为  阅读全文
posted @ 2019-03-13 21:19 Isaunoya 阅读(241) 评论(0) 推荐(0) 编辑
摘要: kruskal是按权值排序的贪心算法 众所周知 n个点 靠n-1条边就可以连通了。。 带上权值 就可以连成一棵最小生成树。 prim的话 prim的话 有好几种版本。。 prim不如kruskal 如果说要是稠密图【比较少的吧】 就用prim 其实prim的优化挺快的吧 emm 阅读全文
posted @ 2019-03-13 21:08 Isaunoya 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 并查集通过一个一维数组来实现,本质上是维护一个森林。刚开始的时候,森林里的每一个结点都是一个集合(也就是只有一个结点的树),之后根据题意,逐渐将一个个集合合并(也就是合并成一棵大树)。之后寻找时不断查找父节点,当查找到父结点为本身的结点时,这个结点就是祖宗结点。合并则是寻找这两个结点的祖宗结点,如果 阅读全文
posted @ 2019-03-13 20:57 Isaunoya 阅读(198) 评论(0) 推荐(0) 编辑
摘要: //非难度递增。 $快速幂(quickpow)$ $最短路(Floyd+spfa+dijkstra)$ $大乘法$ $前缀和(一维+二维)$ $并查集$ $最小生成树(kruskal+prim)$ $线筛$ $快排$ $树状数组$ $线段树$ $二分/三分$ $ST表$ $裴蜀定理$ $tarjan 阅读全文
posted @ 2019-03-13 20:52 Isaunoya 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 最短路的题目 阅读全文
posted @ 2019-03-13 20:50 Isaunoya 阅读(193) 评论(0) 推荐(0) 编辑
TOP