Trie
文章平均质量分 77
CoderFly
如果现在不努力,那跟咸鱼有什么区别。
展开
-
UVA11732 左儿子右兄弟 Trie
tot[i]记录每个以i为根的树的叶子节点的数目注意插入的时候要插入‘\0’ 为了分辨 前缀和相同的串对于叶子节点 ans+=tot[u]*(tot[u]-1)/2*2*depth;即相同的串两两一对的对数 *(2*深度)对于非叶子节点 统计以其为根节点的串 两两一对的对数 for(int v=head[u];v;v=next[v]){原创 2016-10-05 20:30:09 · 644 阅读 · 0 评论 -
UVA11488 Trie
组织一棵Trie记录每个节点有多少串经过统计最大值#include #include#include#includeusing namespace std;const int maxn=50010*2+10;typedef long long ll;struct Trie{ int ch[maxn][2]; int tot[maxn]; int原创 2016-10-05 20:26:56 · 383 阅读 · 0 评论 -
UVA1401&LA3942 Trie+DP
题目大意将给定长度为L的字符串S 用字典中单词分解 单词可重复使用 问有多少分解方案数大体思路dp[i]表示从i开始的字符串(后缀)的分解方案数 dp[i]=∑dp[i+len(x)] x为字符串S[i...L]的前缀 将单词组成Trie 然后在Trie中查找前缀 找到后递推dp[i]即可#include #include#include#include#includ原创 2016-10-05 10:14:15 · 328 阅读 · 0 评论 -
LA4730 UVA1455 线段树+并查集
以y轴建线段树 把坐标*2 初始化各节点 洲,城市 数目为0 并查集维护每一个连通块的 y坐标最大值最小值(x坐标没用)城市数目 合并时 如果是一个洲(城市数大于1) 线段树对应区间减掉该洲城市数 然后将两个洲合并,再在线段树对应区间增加大洲的城市数 (区间城市数不等于子区间城市数之和)#include <bits/stdc++.h>using namespace std;const in原创 2016-11-20 22:14:02 · 364 阅读 · 0 评论