2017年2月27日

RMQ算法

摘要: 1. Sparse Table:静态数据,多次查询 2. Binary Index Tree:单点更新,多次查询 3. 线段树:单点/成段更新,多次查询 阅读全文

posted @ 2017-02-27 15:24 ivancjw 阅读(118) 评论(0) 推荐(0) 编辑

2017年2月26日

[LeetCode 471] Encode String with Shortest Length

摘要: Trick: int r = (sub + sub).find(sub, 1); 寻找重复pattern。sub.size() % r == 0一定成立。否则设r是查找结果,总能找到更小的r满足条件。 阅读全文

posted @ 2017-02-26 15:51 ivancjw 阅读(806) 评论(0) 推荐(0) 编辑

2017年2月25日

{}语法问题

摘要: 跟emplace一样,语法不统一。 阅读全文

posted @ 2017-02-25 16:05 ivancjw 阅读(141) 评论(0) 推荐(0) 编辑

2017年2月19日

[TC SRM 665 div1 lev1] LuckySum

摘要: 这道题挺有意思,转化为图来做。顶点v = (carry, zero),其中carry表示是否有从右边一位进1,zero表示是否有其中一个lucky number进入前导0。 G存储从某个顶点通过某边(取某digit)可到达的下一个顶点;E存储某顶点可出去的所有边(即该位可取的digit)。 需要特别 阅读全文

posted @ 2017-02-19 21:31 ivancjw 阅读(228) 评论(0) 推荐(0) 编辑

2017年2月18日

[TC SRM 662 div1 lev1] FoxesOfTheRoundTable

摘要: 转载:http://codeforces.com/blog/entry/19151 Note: 将问题转化为寻找hamiltonian回路问题。证明过程值得一看。 Suppose the heights are sorted: h[0] <= h[1] <= h[2] ... In one hand 阅读全文

posted @ 2017-02-18 15:39 ivancjw 阅读(118) 评论(0) 推荐(0) 编辑

2017年2月15日

带权最短路 Dijkstra, SPFA, Bellman-Ford, ASP, Floyd-Warshall 算法分析

摘要: 转载:https://www.renfei.org/blog/weighted-shortest-path.html 图论中,用来求最短路的方法有很多,适用范围和时间复杂度也各不相同。 本文主要介绍的算法的代码主要来源如下: Dijkstra: Algorithms(《算法概论》)Sanjoy Da 阅读全文

posted @ 2017-02-15 22:26 ivancjw 阅读(688) 评论(0) 推荐(0) 编辑

2017年2月14日

[TC SRM 697 div1 lev1] DivisibleSetDiv1

摘要: Tutorial:https://apps.topcoder.com/wiki/display/tc/SRM+697#DivisibleSetDiv1 Note:证明过程值得一看。 主要内容:寻找[x1,x2,...,xn]使得满足bi * xi >= S - xi,其中S = x1 + x2 + 阅读全文

posted @ 2017-02-14 21:13 ivancjw 阅读(162) 评论(0) 推荐(0) 编辑

n个labeled顶点k棵树森林计数

摘要: n个labeled顶点构成包含k棵rooted树的森林,不同森林的个数为: C(n - 1, k - 1) * n ^ (n - k) 若指定了k个不同的root,则森林计数为: k * n ^ (n - k - 1) 证明: http://www.stat.berkeley.edu/~pitman 阅读全文

posted @ 2017-02-14 17:12 ivancjw 阅读(445) 评论(0) 推荐(1) 编辑

逻辑等价式

摘要: 转载: http://star.aust.edu.cn/~xjfang/AiPrinciple/logical.html 逻辑等价式 常用逻辑蕴含式 阅读全文

posted @ 2017-02-14 12:43 ivancjw 阅读(4360) 评论(0) 推荐(0) 编辑

[LeetCode 493] Reverse Pairs

摘要: 这道题可以用D&C或者BST做。在contest上看到一种bit manip解法,记录一下。 基本思想: 将a按lowbit减,b按lowbit加。 1. 若a >= b,则必在某点相遇(包括自身),且仅相遇一次; 2. 若a < b,永不相遇。 复杂度: 1. 期望时间复杂度是O(n),但是由于常 阅读全文

posted @ 2017-02-14 12:34 ivancjw 阅读(960) 评论(0) 推荐(0) 编辑

导航