E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Spoj
bzoj1095 捉迷藏
具体的自己yy吧(不过bzoj过了,
spoj
上Re了,不知道什么鬼)/**************************************************************P
Clarehehe
·
2016-01-06 23:29
c++
动态点分治
bzoj1095 捉迷藏
具体的自己yy吧(不过bzoj过了,
spoj
上Re了,不知道什么鬼)/**************************************************************P
Clarehehe
·
2016-01-06 23:29
动态点分治
【BZOJ3211&3038】花神游历各国&上帝造题的七分钟2(CodeVS)
SampleInput41100555112212112223114SampleOutput1011111HINT 对于100%的数据,n≤100000,m≤200000,data[i]非负且小于10^9 Source
SPOJ
2713gss4
DMoon
·
2016-01-06 16:00
1095: [ZJOI2007]Hide 捉迷藏
准备水下QTREE4,听说
SPOJ
的机子很慢,好虚啊。
nlj1999
·
2015-12-30 13:00
【后缀自动机】
SPOJ
LCS
SPOJ
NSUBSTR
SPOJ
LCS2 HDU4416
据说后缀自动机可以替代后缀数组和后缀树……后缀自动机,用线性的节点数来保存所有的后缀。构建自动机structnode { intch[26],len,link; voidinit() { len=link=0; memset(ch,0,sizeofch); } }tree[MAXN #include #include #defineMAXN250005 usingnamespacestd; ch
cqbztsy
·
2015-12-29 23:00
后缀自动机
【后缀自动机】[
SPOJ
LCS]Longest Common Substring
题目后缀自动机基础题。根据A串构造后缀自动机,然后用B串进行匹配。假设前匹配到了s[i],l为上次停留的节点,如果l有儿子s[i],len++,l=l->ch[s[i]],否则,沿着失配边走到当前第一个有儿子s[i]的节点a,len=a节点所表示的最大的字串长度+1,l=a->ch[s[i]];ans即为过程中匹配到的最长的字串。#include #include #include #define
outer_form
·
2015-12-29 13:00
C++
后缀自动机
SPOJ
375 QTREE - Query on a tree
果然不在状态,树剖都写跪了。。。。。。。。RE了三次,又是多组数据忘了什么该初始化的。WA了一次,忘了每个点代表它与它父亲连线的边权。我这拙计的智商啊。。。。。#include #include #include #definelcosiz[son[u]])son[u]=v; } } voiddfs2(intu,inttp){ pos[u]=++sz;top[u]=tp;rank[sz]=u; i
nlj1999
·
2015-12-16 20:00
2588:
Spoj
10628. Count on a tree
竟然1A了,完了这个月的RP用光了。树上主席树(听起来好奇怪)。在每个节点建一颗主席树,保存其到根节点的权值。然后询问就是sum(u)+sum(v)-sum(lca(u,v))-sum(fa(lca(u,v))),至于这个前缀和是什么,大概就是线性序列的那个前缀差不多,不过搞成根节点到当前节点链上的前缀和了。#include #include #include #include usingname
nlj1999
·
2015-12-15 18:00
SPOJ
QTREE Query on a tree
思路:树链剖分的一种,将边权赋值给这条边的儿子节点,(u,v)也就是v节点,u->v,然后线段树维护节点之间的关系。注意的是,如果u,v在同一天链中的话且dep[u] #include #include #include #include #include #include #include #include #include #include #include #include #include
KIJamesQi
·
2015-12-13 20:00
树链剖分
1290 Counting Diff Pairs
1290Counting Diff Pairs题目来源:
Spoj
基准时间限制:4秒空间限制:131072KB分值:320难度:7级算法题收藏关注取消关注一个长度为N的正整数数组A,给出一个数K以及Q个查询
ZSGG_ACM
·
2015-12-11 13:00
树状数组
二分
分块
SPOJ
SUBST1 New Distinct Substrings 后缀数组-子串个数
#include #include usingnamespacestd; constintmaxn=200000; intt1[maxn],t2[maxn],c[maxn]; boolcmp(int*r,inta,intb,intl) { returnr[a]==r[b]&&r[a+l]==r[b+l]; } voidda(intstr[],intsa[],intrank1[],intheight
xinag578
·
2015-12-04 22:00
SPOJ
DISUBSTR Distinct Substrings 后缀数组子串个数
#include #include #include #include usingnamespacestd; constintN=100005; intwa[N],wb[N],ws[N],wv[N]; intrk[N],height[N]; boolcmp(intr[],inta,intb,intl){ returnr[a]==r[b]&&r[a+l]==r[b+l]; } voidda(i
xinag578
·
2015-12-04 22:00
树链剖分+线段树
spoj
375 Query on a tree
传送门:点击打开链接题意:边更新,路径查询边权最大值思路:第一道树链剖分题,其实树链剖分就相当于把树的边给分类了一样,分成了重边和轻边。然后,有一个性质,重链的条数和轻边的条数都不会超过log(n),所以总的复杂也只有log(n)也就是说,本身要维护一个路径上的某个东西,如果直接用线段树做,并不是很好做,树链剖分就相当于把重链和轻边分开求,因为重链在DFS序下编号是可以连在一起的,所以重链是整条都
qwb492859377
·
2015-12-02 16:00
【高级数据结构】[
SPOJ
QTREE]树链剖分/动态树各一模板
题目:树链剖分:#include #include #include usingnamespacestd; #defineMAXN10024 #defineMAXLOG14 #defineINF0x7fffffff intn,T,size[MAXN+10],dep[MAXN+10],fa[MAXN+10][MAXLOG+1],wt[MAXN+10]={0,-INF},bl[MAXN+10],len
outer_form
·
2015-12-01 13:00
数据结构
C++
【可持久化线段树】[
SPOJ
COT]Count on a tree
题目大意:给定一棵树,然后询问连个节点间路径上的权值的第K小的权值大小题目分析:和普通的第K大的可持久化线段树差距不大,但是要写个LCA可以发现Tree(a)+Tree(b)−Tree(LCA)−LCA(fa[LCA])就是两个节点之间的线段树了,然后按照普通的可持久化线段树搞一搞就好了#include #include #include usingnamespacestd; constintMA
JeremyGJY
·
2015-11-27 13:00
C++
算法
COT
可持久化线段树
Spoj
1716 Can you answer these queries III
(几乎一样的题和几乎一样的代码#include #include #include usingnamespacestd; constintmaxn=112345; #defineLLlonglong constLLINFF=0x3f3f3f3f3f3f3f3fll; structInfo{ LLlmax,rmax,sum,val; voidmaintain(LLx){ lmax=rmax=s
a1s4z5
·
2015-11-21 14:00
spoj
SPOJ
1043 Can you answer these queries I
犹记得最大子序列和有一个递归算法就是对于每个区间,把它分为左右两个区间,并保存四个值(从左边第一个元素开始往右能达到的最大值(lmax),从右边第一个元素开始往左能达到的最大值(rmax),区间和(sum),最大子区间和(value))显然对于这个区间的最大值只有三种可能,左区间的最大和,右区间的最大和,从中间分开,左区间的rmax+右区间的lmax这样的话维护的这四个值是满足区间加法的,也就是说
a1s4z5
·
2015-11-21 14:00
SPOJ
NSUBSTR
题意:给出一个字符串,求这个字符串长度为1-n的子串的最大出现次数;字符串长度=x的结点的right值的最大值;right值是不能再构建自动机时增量维护的,所以只能在构建这个后缀自动机之后再O(n)搞一遍;具体就是从反向后缀树的叶子开始,定义每个关键节点的right初始都为1,然后顺着求出所有节点的子树和就可以了;然后再用right[x]更新f[len[x]],扫一遍让f[i]=max(f[i],
ww140142
·
2015-11-18 23:00
spoj
后缀自动机
后缀树
SPOJ
375 树链剖分
模板#include #include #include #include #include usingnamespacestd; #definelson(posg[maxn]; structedge { intto,next; }e[maxn]; inlinevoidadd_edge(inta,intb,intc) { g[a].push_back(Vector_edge(b,c)); }
baidu_23081367
·
2015-11-17 01:00
【树链剖分】[
SPOJ
-QTREE]Query on a tree
题目模板题,存代码。#include #include #include usingnamespacestd; #defineMAXN10024 #defineMAXLOG14 #defineINF0x7fffffff intn,T,size[MAXN+10],dep[MAXN+10],fa[MAXN+10][MAXLOG+1],wt[MAXN+10]={0,-INF},bl[MAXN+10],l
outer_form
·
2015-11-15 20:00
C++
图论
spoj
p104 Matrix-Tree定理
这个问题就是经典的生成树记数问题,题目为
spoj
p104 highway。
·
2015-11-13 21:50
Matrix
SPOJ
NWERC11B Bird tree
题意:根据公式进行分析,当该数字小于1说明往左边走,当数字大于1说明往右边走 #include<stdio.h> int main() { int T; long long a,b,temp; scanf("%d",&T); while(T--) { scanf("%lld
·
2015-11-13 15:33
tree
SPOJ
839 最小割
题意: 给出一些权已知的点(剩下的点的权未知),以及所有点之间的边的关系,每条边的权是其两端点的点权值的异或值,求未知点的权是什么的时候所有边权的和最小 题解: amber的论文题,简直太绝了! http://kanboxshare.com/link/v0yHI2oUoSNMCo8mAmj1Bxy0mqMIH6tZNUsbGxG4mvu3FNl9FfiODWiEmdvTHKBRNUbpNx
·
2015-11-13 15:43
poj
SPOJ
1676 矩阵乘法+DP
题意: 给定N (1 ≤ N ≤ 10)个长度不超过6的单词,求由大写字母组成长度为L的包含至少一个给定单词的字符串有多少种,答案 mod 10007,(1 ≤ L ≤ 10^6)。 题解: 这个题最早是在一个关于trie图的论文中看到了,最近jzh又讲到了这个题,于是就把它做了~ 大致有两种做法,两种方法都需要矩阵乘法加速 1、trie图中的dp 2、直接人工减少转移
·
2015-11-13 15:16
poj
SPOJ
694/705 后缀数组
题意: 求单个子串的不重复子串个数 题解: 一个字符串中的所有子串都必然是它的后缀的前缀。 对于每一个sa[i]后缀,它的起始位置sa[i],那么它最多能得到该后缀长度个子串(n-sa[i]个),而其中有height[i]个是与前一个后缀相同的,所以它能产生的实际后缀个数便是n-sa[i]-height[i]。遍历一次所有的后缀,将它产生的后缀数加起来便是答案。 &nbs
·
2015-11-13 15:11
后缀数组
SPOJ
1825 Free tour II 树分治
题意: 有N个顶点的树,节点间有权值, 节点分为黑点和白点。 找一条最长路径使得 路径上黑点数量不超过K个。 题解: 此题是qzc的论文里的题,没看懂qzc写的,后来看的别人的代码才理解了。 先引用一下这位神犇的题解:http://hi.baidu.com/fuqbppvrgcbactd/item/14a81a1bdbd9f98888a956b9 在以ROOT为根的树上,
·
2015-11-13 15:08
free
SPOJ
2798 Query on a tree again 树链剖分
这题真是神题! 当然我不是说这题有多神,而是你数组开小了和开大了得分不同,用不同版本的编译器得分不同。。。(数组没有越界的情况下) 呜呜。。。至今没有ac。一直83分。。。抑郁了。。。 跪求神犇指明错误。。。 View Code 1 #include <iostream> 2 #include <cstring> 3 #in
·
2015-11-13 15:07
query
SPOJ
913 Query on a tree II 树链剖分
对于询问dist,树链剖分搞之,把边权转化到点上,然后注意细节就好(我在代码里标出来了,为了这个细节,wa了一屏) 对于询问kth,可以先求出两点(x和y)的lca,然后判断第k个数字是在x到lca的路径上还是y到lca的路径上,确定之后,倍增的寻找就好了~ View Code 1 #include <iostream> 2 #include &
·
2015-11-13 15:06
query
SPOJ
375 query on a tree 树链剖分
题意: 给一棵树型数据结构 ①支持修改边的权值 ②支持成段边权最值查询 树链剖分入门题、 树链剖分+线段树 用的notonlysuccess的线段树——不开结构体事先预处理的那种 我以前写的都是结构体的那种~ View Code 1 #include <iostream> 2 #i
·
2015-11-13 14:37
query
SPOJ
1812 LCS2 后缀自动机
题意: 给10个字符串,求他们的最长公共子串。 题解: 只要明确后缀自动机中的每个节点都是其实都对应着逆序的后缀树的一个集合。 而nlcs(当前最长匹配长度)和lcs都是对于这个集合而言的,所有,每个点都要更新他的*f指针(逆序后缀树的父亲)所指的节点。 View Code 1 #include <iostream>
·
2015-11-13 14:17
poj
SPOJ
1811 LCS 后缀自动机
题意: 给两个字符串A、B求他们的最长公共字串。 题解: 后缀自动机啊。你怎么这么恶心这么神啊。。。 必然还是我太弱了。。 第一次搞,参考了别人的代码。 将A建立成后缀自动机,后缀自动机的任意一个节点都表示若干个A的字串,让B在后缀自动机上匹配,不能匹配就沿着f指针转移就是了。 在这个过程中维护自动机的一个节点对应的right集合的最大匹配长度。取最大值就是答案。
·
2015-11-13 14:16
poj
ADERA3 省选模拟赛
SPOJ
LMCONST
这题zxr神犇当场ak了。。 无限仰慕,用的是zxr神犇的方法,没有Riatre的~ 不加通道前时一棵树,然后根据这个再树上贪心就好了,反正我是没想到。。。 View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 #incl
·
2015-11-13 13:14
Const
SPOJ
LCS(Longest Common Substring-后缀自动机-结点的Parent包含关系)
1811. Longest Common Substring Problem code: LCS A string is finite sequence of characters over a non-empty finite set Σ. In this problem, Σ is the set of lowercase le
·
2015-11-13 12:34
substring
SPOJ
1811最长公共子串问题(后缀自动机)
题目:http://www.
spoj
.com/problems/LCS/ 题意:给两个串A和B,求这两个串的最长公共子串。
·
2015-11-13 11:40
poj
【
SPOJ
】694. Distinct Substrings
http://www.
spoj
.com/problems/DISUBSTR/ 题意:求字符串不同子串的数目。
·
2015-11-13 11:52
substring
12月刷题总结
QAQ 字符串: sam: 【
SPOJ
】7258.
·
2015-11-13 11:33
总结
【
SPOJ
】1825. Free tour II(点分治)
http://www.
spoj
.com/problems/FTOUR2/ 先前看了一会题解就自己yy出来了。。。对拍过后交tle。。。。。。。。。。。。。。。。。。
·
2015-11-13 11:28
free
【
SPOJ
】7258. Lexicographical Substring Search(后缀自动机)
http://www.
spoj
.com/problems/SUBLEX/ 后缀自动机系列完成QAQ。。。撒花。。明天or今晚写个小结?
·
2015-11-13 11:00
substring
【
SPOJ
】1812. Longest Common Substring II(后缀自动机)
http://www.
spoj
.com/problems/LCS2/ 发现了我原来对sam的理解的一个坑233 本题容易看出就是将所有匹配长度记录在状态上然后取min后再对所有状态取max。
·
2015-11-13 11:59
substring
【
SPOJ
】8222. Substrings(后缀自动机)
http://www.
spoj
.com/problems/NSUBSTR/ 题意:给一个字符串S,令F(x)表示S的所有长度为x的子串中,出现次数的最大值。
·
2015-11-13 11:57
substring
【wikioi】3160 最长公共子串(后缀自动机)
(之前写了
spoj
上另一题sam的题目,但是
spoj
被卡评测现在还没评测完QAQ打算写那题题解时再来详细介绍sam的。。。。那就再等等吧。
·
2015-11-13 11:56
IO
【
SPOJ
】10628. Count on a tree(lca+主席树+dfs序)
http://www.
spoj
.com/problems/COT/ (速度很快,排到了rank6) 这题让我明白了人生T_T 我知道我为什么那么sb了。 调试一早上都在想人生。 唉。
·
2015-11-13 11:59
count
【
SPOJ
】375. Query on a tree(树链剖分)
http://www.
spoj
.com/problems/QTREE/ 这是按边分类的。 调试调到吐,对拍都查不出来,后来改了下造数据的,拍出来了。
·
2015-11-13 11:57
query
SPOJ
375(树链剖分)
题目:Query on a tree 题意:给定一棵树,告诉了每条边的权值,然后给出两种操作: (1)把第i条边的权值改为val (2)询问a,b路径上权值最大的边 分析:本题与HDU3966差不多,区别就是:HDU3966是告诉树中点权的值,这里是边权。 所以我们可以转化,用边的孩子节点来表示该边。 #include <iostream>
·
2015-11-13 10:42
poj
SPOJ
4191. Sky Code
http://www.
spoj
.com/problems/MSKYCODE/ 容斥原理 在我不断的优化过后,终于过了 代码: #include <iostream> #include
·
2015-11-13 10:52
code
SPOJ
6285. Another Game With Numbers
http://www.
spoj
.com/problems/NGM2/ 容斥原理 第四题 水! 难题各种各样,水题都一个样,无语。
·
2015-11-13 10:47
number
SPOJ
PGCD (mobius反演 + 分块)
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 题意 :求满足gcd(i , j)是素数(1 <= i <= n && 1 <= j <= m)二元组(i , j)个数。 很值得总结的题。。。 首先得会一点前提东西 。。。
·
2015-11-13 08:40
poj
SPOJ
375(树链剖分)
题目连接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28982#problem/I 题意:一棵包含N 个结点的树,每条边都有一个权值,要求模拟两种操作: (1)改变某条边的权值。 (2)询问U,V 之间的路径中权值最大的边。 树链剖分裸题,入门资料:http://blog.sina.com.cn/s/blog
·
2015-11-13 07:16
poj
spoj
1811 Longest Common Substring (后缀自动机)
spoj
1811 Longest Common Substring (后缀自动机) 题意:lcs。。求两个字符串的最长公共连续子串 解题思路:后缀自动机解法。
·
2015-11-13 07:52
substring
SPOJ
1108 Card Trick 暴力模拟
解释一下样例,因为我觉得这个题意表述的不是很清楚。以第二组样例为例。 牌序为:3 1 4 5 2 第一轮:把 3 放到末尾:1 4 5 2 3,最顶上的牌是1,把1拿走。剩余 4 5 2 3 第二轮:1.把4放到末尾:5 2 3 4 2.把5放到末尾:2 3 4 5
·
2015-11-13 07:40
poj
上一页
11
12
13
14
15
16
17
18
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他