























COMMENTS
| 标题 | 作者 | 日期 | |
|---|---|---|---|
| Re:luogu2398 SUM GCD | headchen | 2018-04-24 10:31 | |
| 但这个不是【正解】,因为算法复杂度是O(n)logn的,测试数据一强就不行了。 | |||
| Re:POJ1144 Network 无向图割点 | headchen | 2018-03-30 16:32 | |
| 尽管你这个能够通过,但是有bug [code=cpp] void Dfs(Node *u) { if (u->DfsN) return; u->DfsN = u->Low = ++DfsCnt; int cnt = 0; for (Edge *e = u->Head; e; e = e->Next) { if (!e->To->DfsN) { Dfs(e->To); |
|||
| Re:POJ1144 Network 无向图割点 | headchen | 2018-03-30 14:02 | |
| 【算法的目的】 在一个【无向图】中,如果删掉点 v 后图的【连通块】数量增加,则称点 v 为图的割点。 【定义】 【算法描述】 从起点开始 DFS; 【解释】 对于一个搜索树上的非根节点 u,如果存在子节点 v,满足 low(v)≥dfn(u),则 u 为割点; |
|||
| Re:luogu3384 【模板】树链剖分 | headchen | 2018-03-29 10:57 | |
| 学习了。 建议: [code=cpp] // void UpdatePath(Node *u, Node *v, int value) void UpdatePath(Node *high, Node *low, int value) 这样更加清晰,QueryPath也是一样 |
|||
| Re:HDU2255 奔小康赚大钱 【模板】二分图完美匹配 | headchen | 2018-03-29 10:46 | |
| 这样可以 [code=cpp] int delta = INF; LOOP(y, _yCnt) //比原来少了一层循环 if (!Yvis[y]) delta = min(delta, Delta[y]); [/code] 少一层循环。降低时间[复杂度]一个量级。 |
|||
| Re:HDU2255 奔小康赚大钱 【模板】二分图完美匹配 | headchen | 2018-03-29 10:43 | |
| 关于【最小松弛量delta】,定义各个delta[MAXN],可以在findPath中【维护】,当找不到时,直接取最小即可。这样可以是的时间复杂度从O(N^4)降低到 O(N^3)。 [code=cpp] |
|||
| Re:HDU2255 奔小康赚大钱 【模板】二分图完美匹配 | headchen | 2018-03-29 10:37 | |
| 学习了。 描述可以简洁一些: |
|||
| Re:luogu3379 【模板】最近公共祖先(LCA) 倍增法 | headchen | 2018-03-27 10:04 | |
| for (int i = log2(a->Depth-b->Depth); i >= 0; i--) if (a->Elder[i] && a->Elder[i]->Depth >= b->Depth) a = a->Elder[i]; 可以用下面的代码替换更好: for(int i =0;i<= log2(a->Depth-b->Depth);i++) |
|||
| Re:luogu3379 【模板】最近公共祖先(LCA) 倍增法 | headchen | 2018-03-27 08:55 | |
| 写的很好, 建议: Node *Lca(Node *a, Node *b) -》 Node *Lca(Node *high,Node *low) 好的命名可以减少一半的bug |
|||
| Re:排列、组合、枚举子集 | headchen | 2018-03-26 15:32 | |
| 学习了。 但是:「全排列」确有更加简洁的算法: [code=cpp] [/code] |
|||
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。