关闭

[字典树 最小树形图] Codeforces Gym 100307 NEERC 13 D. Dictionary

先把所有串建成字典树 字典树上的边 边权为1 然后如果两个点 一个是另一个的后缀 那么就另一个向那一个连0的边 跑一通最小树形图就好了 我不会 拷了个板子 输出方案就很蛋疼了#include #include #include #include using namespace std;inline char nc(){...
阅读(170) 评论(0)

[Trie树建图 2-SAT] Codeforces Gym 101190 NEERC 16 B. Binary Code

把所有串都扔进字典树 如果有两个是祖先和子孙的关系 就不能共存 那么我们直接用字典树辅助建一下图 跑2-SAT就好了 说起来真轻松#include #include #include #include #include using namespace std;inline char nc(){ static...
阅读(435) 评论(0)

[SG函数 Trie树合并] SPOJ COT3 Combat on a tree

开始搬神犇的题解 题意 给定一棵NN个点的树,11号点为根,每个节点是白色或者黑色。 双方轮流操作,每次选择一个白色节点,将从这个点到根的路径上的点全部染成黑色。 问先手是否必胜,以及第一步可选节点有哪些。 N<=100000N<=100000 分析 首先是博弈方面的分析。 令SG[x]SG[x]为,只考虑以xx为根的子树时的SGSG值。...
阅读(261) 评论(0)

[XOR最小生成树 分治 Trie || Prim 堆] BNUOJ 52318 Be Friends

关于位运算生成树问题 尛焱轟在APIO上专门讲过 一些杂七杂八的东西 不过还是没怎么搞清楚 这个可以分治 显然对于最高位 为0的一团 为1的一团 那么只需要找最小的一条边连接 这个可以在其中一半枚举 另一半建成Trie在上面查询 然后分治到低一位 #include #include #include #include using namespace std; typ...
阅读(207) 评论(0)

[AND最大生成树 分治 Trie || Kruskal] UOJ Goodbye Yiwei C #176. 新年的繁荣

这个直接上题解吧 :http://vfleaking.blog.uoj.ac/blog/1244 Kruskal  用尛焱轟的话来说就是 枚举边权 可以发现一种边权最多只有O(m)个联通块需要合并 O(m 2^m a(n)) #include #include #include using namespace std; typedef long long ll; inli...
阅读(159) 评论(0)

[可持久化字典树] BZOJ 4546 codechef XRQRS

这就是个大模板题 本来后两个操作想再打个主席树 后来发现可持久化字典树就是主席树 #include #include #include using namespace std; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(bu...
阅读(457) 评论(0)

[可持久化字典树 分块] BZOJ 2741 【FOTILE模拟赛】L

先异或取前缀和 最大异或值 可持久化字典树 然后么 区间问题 分块 用f[i][j] 表示 第i块中的数与i-j块的数的最大异或值 然后边角处理下 复杂度一个根号一个log #include #include #include #include using namespace std; typedef long long ll; inline char nc() { ...
阅读(326) 评论(0)

[可持久化字典树 set] BZOJ 3166 [Heoi2013]Alo

枚举每个点 处理出它能作为次大值的区间 然后就是数据结构的问题了 “按照权值的倒序,set维护位置,依次插入,则x的可行区间为[x前驱的前驱+1,x后继的后继-1](两半合起来)” ——hzwer #include #include #include #include using namespace std; inline char nc() { static c...
阅读(228) 评论(0)

[可持久化字典树] BZOJ 3261 最大异或和

表达式形如Xor[p]^Xor[n]*x 然后就是个裸的最大异或和了 在前面加个0 会好做点 #include #include #include using namespace std; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fr...
阅读(252) 评论(0)

[Trie树 单调栈] BZOJ 4523 [Cqoi2016]路由表

建一棵字典树,记一下时间 然后就是在字典树上匹配 因为匹配长度是单调增的,所以维护一个时间的单调递增栈 #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef long long ll; inline char nc() { stati...
阅读(258) 评论(0)

[Trie树] BZOJ 1819 [JSOI]Word Query电子字典

Trie树上暴力 复杂度不虚 #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(...
阅读(245) 评论(0)

[乱搞 || 可持久化字典树 堆] BZOJ3689 异或之

%%hzwer:http://hzwer.com/3657.html 好可怕,暴力大法好 什么可持久化字典树,蒟蒻不会 #include #include #include using namespace std; typedef long long ll; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (...
阅读(358) 评论(0)
    个人资料
    • 访问:261087次
    • 积分:11910
    • 等级:
    • 排名:第1320名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:49条
    最新评论