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
SPOJ
1435 Vertex Cover 树形DP
i 表示节点 i ,j=0表示不选择其父节点,j=1表示选择其父节点。f 为其父节点。 取 每个节点选择/不选择 两者中较小的那个。 一组数据: 151 21 31 41 1010 910 1112 1012 1410 1313 154 55 74 66 8 答案是6 1 #include <cstdio> 2 #include <cstring> 3
·
2015-11-13 07:38
over
spoj
1812 lcsII (后缀自动机)
spoj
1812 lcsII (后缀自动机) 题意:求多个串的lcs,最多10个串,每个串最长10w 解题思路:后缀自动机。先建好第一个串的sam,然后后面的串拿上去跑(这个过程同前一题)。
·
2015-11-13 06:59
poj
SPOJ
370 Ones and zeros BFS + 同余剪枝
题意:给一些n,求出最小的只包含0,1的n的倍数 设两数a, b满足: a < b 并且a % n = b % n。 如果 ( a * 10^x + c ) % n = z , 根据同余定理,( b * 10^x + c ) % n 也等于 z。 b的情况其实与a相同,如果a不符合条件,那么b一定不符合条件。 因此我们在搜索时,从1开始,每次往后添加0或1,如果得到的数与之前得到的某
·
2015-11-13 05:08
zero
数据结构题单
SPOJ
GSS一搜就行了 GSS1 线段树记下左右边的就行了。。水题 不解释 GSS2 比较经典 必须得离线 排下序 从左到右扫一遍 具体细节自己想吧。。 GSS3 同GSS1 加个修改。。太
·
2015-11-13 05:05
数据结构
SPOJ
1811 Longest Common Substring 后缀自动机
模板来源:http://www.neroysq.com/?p=76 思路:http://blog.sina.com.cn/s/blog_7812e98601012dfv.html 题意就是求两个字符串的最长公共子串,串长最大250000。 以串A构建一个后缀自动机,用串B来匹配。枚举串B的每一位B[i]即考虑串B中所有以B[i]为结尾的子串,维护的值为以B[i]为末尾能匹配的最大长度tmpL
·
2015-11-13 05:02
substring
SPOJ
416 Divisibility by 15 细节题
一个结论:一个数,如果它的所有数字之和能被3整除,那么这个数也能被3整除。 最后一位肯定是0或者5,如果没有就impossible。 剩下的就是,如何删除尽量少的数,使所有数字之和为3的倍数。 情况比较多,注意考虑全面。 1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib&
·
2015-11-13 05:52
visibility
SPOJ
227 Ordering the Soldiers 线段树 / 树状数组
题意:设原数组为a[i],pos[i]代表第 i 个位置之前有多少个数比a[i]大,求原数组a[i]。 这个题意是看了别人的题解才明白,我自己没读出来…… 方法:假设我们从左往右放,因为后面的数还有可能影响前面的数的位置,所以在最后一个数放完之前,我们没法确定每个数的位置,所以我们反过来考虑,从右往左放。因为每个数前面比它大的数的个数pos[i]已知,我们可以不必关心这些数的具体数值,从而转化
·
2015-11-13 05:51
order
SPOJ
274 Johnny and the Watermelon Plantation(TLE)
O(n^3)的时间复杂度,改了半天交了二三十遍,TLE到死,实在没办法了…… 跪求指点!!! 1 #include <cstdio> 2 #include <cstdlib> 3 #include <cstring> 4 #include <algorithm> 5 6 using namespace std
·
2015-11-13 05:50
water
SPOJ
78 Marbles 组合数学
相当于从n-1个位置里面找k-1个位置放隔板 1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 #include <algorithm> 5 6 #define LL long long int 7 8 using na
·
2015-11-13 05:43
poj
大神刷题表
9月27日 后缀数组:【wikioi3160】最长公共子串 dp:NOIP2001统计单词个数 后缀自动机:【
spoj
1812】Longest Common Substring II 【
·
2015-11-13 05:48
表
SPOJ
DQUERY 求区间内不同数的个数 主席树
这题跟HDU3333差不多吧。 离线的做法很简单,不再说了 以前做过。 主席树的做法就比较暴力了。。 什么是主席树呢。。 其实是某种称号。 在该题中的体现是可持久化的线段树。 对于一个数 如果以前没出现过 就插入到主席树中 否则就删除以前那个。 再插入主席树。 注意,所有的更新和删除都是建立了新的节点来保持其历史状态的。。 对于T[i]我们存的是从
·
2015-11-13 04:17
query
SPOJ
7001(莫比乌斯反演)
传送门:Visible Lattice Points 题意:0<=x,y,z<=n,求有多少对xyz满足gcd(x,y,z)=1。 设f(d) = GCD(a,b,c) = d的种类数 ; F(n) 为GCD(a,b,c) = d 的倍数的种类数, n%a == 0 n%b==0 n%c==0。 即 :F(d) = (N/d)
·
2015-11-13 04:25
poj
SPOJ
PGCD(莫比乌斯反演)
传送门:Primes in GCD Table 题意:给定两个数和,其中,,求为质数的有多少对?其中和的范围是。 分析:这题不能枚举质数来进行莫比乌斯反演,得预处理出∑υ(n/p)(n%p==0). #pragma comment(linker,"/STACK:1024000000,1024000000") #incl
·
2015-11-13 04:23
poj
SPOJ
149 FSHEEP Fencing in the Sheep ( 计算几何 + 二分 )
以下摘自
SPOJ
泛做表格: 题意:给定一个星形多边形,而且给出了一个可以看到形内所有点的位置(我们称这个点为观察点),让你判断有多少个点位于多边形内。
·
2015-11-13 03:35
poj
SPOJ
362 Ignore the Garbage 转7进制+简单大数除法
显然正着倒着看仍然是数字的只有7个数:0,1,2,5,6,8,9 所以就是用这7个数组合成不同的数。 将n转换成7进制,对应位输出即可。 #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> using name
·
2015-11-13 03:12
poj
SPOJ
364 Pocket Money 简单DP
跟矩阵链乘同类型的题…… 输出用%llu不是%I64u…… 几组数据: 141+2*4+3*4+5*00*5*6+7*3+23+0+6+7+0+44*5+7*1*1+12*0+3*4*0+5*6+7+81+2+3*1+2*1+00+2*2+3*0+48*9*0+22*0+1+0*32*0*3+7+1*0*31+3*0*5+21+1+1+1+12*1+1+2*1+2*1+61*2*4*0*6*
·
2015-11-13 03:11
poj
QTREE 树链剖分---模板
spoj
QTREE
spoj
QTREE 题目: 给出一棵树,有两种操作: 1.修改一条边的边权。 2.询问节点a到b的最大边权。 直接粘代码。
·
2015-11-13 03:48
tree
spoj
227 Ordering the Soldiers——树状数组
有n个点,标号1到n,给定数组b[i]表示i前面比a[i]小的点的个数,求a[]数组。 我们倒着扫b数组,将符合条件的最大的数插入a数组相应的位置,就得解了。但是朴素查找需要很多时间,就需要用数状数组了。维护一个c数组,sum(i)表示现在有几个数字不大于i,因为sum(i)是有序的,所以我们每次查找的时候就用二分查找就行了,在找到这个点以后,就从c数组中删去。总的复杂度为O(n * lo
·
2015-11-13 03:09
order
差分约束系统
又学了一遍差分约束系统
SPOJ
1451 NOI 1999的原题, 差分约束SPFA 1 /* 2 * ======
·
2015-11-13 02:16
差分约束
SPOJ
1812 Longest Common Substring II(后缀自动机)(LCS2)
A string is finite sequence of characters over a non-empty finite set Σ. In this problem, Σ is the set of lowercase letters. Substring, also called factor, is a consecutive sequence of characters oc
·
2015-11-13 02:43
substring
SPOJ
375 Query on a tree(树链剖分)(QTREE)
You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. We will ask you to perfrom some instructions of the following form: CHANGE i
·
2015-11-13 02:39
query
SPOJ
3978 Distance Query(tarjan求LCA)
The traffic network in a country consists of N cities (labeled with integers from 1 to N) and N-1 roads connecting the cities. There is a unique path between each pair of different cities, and we kno
·
2015-11-13 02:37
query
SPOJ
DISUBSTR(字符串hash)
传送门:DISUBSTR 题意:给定一个字符串,求不同子串个数。 分析:由于数据较小,直接枚举长度为1,2...n的所有子串进行hash即可,复杂度(O(n^2)),后缀数组才是正解(O(nlogn)。 #include <iostream> #include <algorithm> #include <cstdio> #in
·
2015-11-13 02:52
substr
SPOJ
DISUBSTR(后缀数组)
传送门:DISUBSTR 题意:给定一个字符串,求不相同的子串。 分析:对于每个sa[i]贡献n-a[i]个后缀,然后减去a[i]与a[i-1]的公共前缀height[i],则每个a[i]贡献n-sa[i]-height[i]个不同子串。 #include <iostream> #include <cstdio> #include <
·
2015-11-13 02:51
substr
hdu 4117 GRE Words AC自动机DP
题目:给出n个串,问最多能够选出多少个串,使得前面串是后面串的子串(按照输入顺序) 分析: 其实这题是这题
SPOJ
7758.
·
2015-11-13 00:37
AC自动机
SPOJ
7758. Growing Strings AC自动机DP
Growing Strings 题目:给出n个字符串,问最多能够选出多少个串组成序列,并满足前一个字符串是后一个字符串的子串。 分析: AC自动机经典水题。。。 考虑每个节点结尾时,他能够选出最多的串 = max{ 父节点选出 , fail节点选出 }+以该节点为结尾的单词个数 #include <set> #include &l
·
2015-11-13 00:37
String
QTREE3
spoj
2798. Query on a tree again! 树链剖分+线段树
Query on a tree again! 给出一棵树,树节点的颜色初始时为白色,有两种操作: 0.把节点x的颜色置反(黑变白,白变黑)。 1.询问节点1到节点x的路径上第一个黑色节点的编号。 分析: 先树链剖分,线段树节点维护深度最浅的节点编号。 注意到,如果以节点1为树根时,显然每条重链在一个区间,并且区间的左端会出现在深度浅的地方。所以每次查找时发现
·
2015-11-13 00:10
query
GSS7
spoj
6779. Can you answer these queries VII 树链剖分+线段树
GSS7 Can you answer these queries VII 给出一棵树,树的节点有权值,有两种操作: 1.询问节点x,y的路径上最大子段和,可以为空 2.把节点x,y的路径上所有节点的权值置为c 分析: 修改树路径的信息,可以考虑一下树链剖分、动态树。 这题可以用树链剖分的方式来做,不会的可以看看这篇 树链剖分---模板。其
·
2015-11-13 00:09
poj
GSS5
spoj
2916. Can you answer these queries V 线段树
gss5 Can you answer these queries V 给出数列a1...an,询问时给出: Query(x1,y1,x2,y2) = Max { A[i]+A[i+1]+...+A[j] ; x1 <= i <= y1 , x2 j <= y2 and x1 <= x2 , y1 <= y2 }  
·
2015-11-13 00:08
poj
GSS3
SPOJ
1716. Can you answer these queries III gss1的变形
gss2调了一下午,至今还在wa。。。 我的做法是:对于询问按右区间排序,利用splay记录最右的位置。对于重复出现的,在splay中删掉之前出现的位置所在的节点,然后在splay中插入新的节点。对于没有出现过的,直接插入。询问时直接统计区间的最大子段和。 gss2没能调出bug,所以看了一下以下的gss3,发现跟gss1基本一样。直接上代码 以上的做法是错的
·
2015-11-13 00:07
poj
GSS1
spoj
1043 Can you answer these queries I 最大子段和
今天下午不知道要做什么,那就把gss系列的线段树刷一下吧。 Can you answer these queries I 题目:给出一个数列,询问区间[l,r]的最大子段和 分析: 线段树简单区间操作。 线段树中记录lx,rx,mx,分别表示:最大前驱连续和,最大后继连续和,区间最大子段和。 在合并时时只需要合并两个区间即可,具体可以看代码的Union。 从队友jingo那里学到了这种合并的
·
2015-11-13 00:06
poj
QTREE2
spoj
913. Query on a tree II 经典的倍增思想
QTREE2 经典的倍增思想 题目: 给出一棵树,求: 1.两点之间距离。 2.从节点x到节点y最短路径上第k个节点的编号。 分析: 第一问的话,随便以一个节点为根,求得其他节点到根的距离,然后对于每个询问(x,y),想求得lca(x,y),直接用dis[x]+dis[y]-2*dis[ lca(x,y) ]即可。 第二问的话,可以用倍增的方式求。我
·
2015-11-13 00:03
query
[
SPOJ
220 Relevant Phrases of Annihilation]
[关键字]:后缀数组 字符串 [题目大意]:给定n 个字符串,求在每个字符串中至少出现两次且不重叠的最长子串。 //====================================================================== [分析]:做法和POJ3294大同小异,也是先将n 个字符串连起来,中间用不相同的且没有出现在字符串中的字符(且小于它们)隔开,最后加上
·
2015-11-13 00:23
ant
[
SPOJ
694 Distinct Substrings]
[关键字]:后缀数组 字符串 [题目大意]:给定一个字符串,求不相同的子串的个数。 //======================================================================= [分析]:如果所有的后缀按照suffix(sa[1]), suffix(sa[2]),suffix(sa[3]), ……,suffix(sa[n])的顺序计算,不
·
2015-11-13 00:20
substring
SPOJ
694 Distinct Substrings/
SPOJ
705 New Distinct Substrings(后缀数组)
Given a string, we need to find the total number of its distinct substrings. Input T- number of test cases. T<=20; Each test case consists of one string, whose length is <= 50000 Output For ea
·
2015-11-13 00:15
substring
SPOJ
8073 The area of the union of circles(计算几何の圆并)(CIRU)
Description You are given N circles and expected to calculate the area of the union of the circles ! Input The first line is one integer n indicates the number of the circles. (1 <= n <= 1000
·
2015-11-13 00:07
UNION
SPOJ
1811最长公共子串问题(后缀自动机)
题目:http://www.
spoj
.com/problems/LCS/ 题意:给两个串A和B,求这两个串的最长公共子串。
·
2015-11-12 23:25
poj
SPOJ
Lexicographical Substring Search 后缀自动机
给你一个字符串,然后询问它第k小的factor,坑的地方在于
spoj
实在是太慢了,要加各种常数优化,字符集如果不压缩一下必t。。
·
2015-11-12 22:50
substring
SPOJ
LCS2 后缀自动机
多串的LCS,注意要利用拓扑序更新suf的len。 我用min,max,三目会超时,所以都改成了if,else #pragma warning(disable:4996) #include<cstring> #include<string> #include<iostream> #include<cmath> #include<
·
2015-11-12 22:49
poj
SPOJ
LCS 后缀自动机
用后缀自动机求两个长串的最长公共子串,效果拔群。多样例的时候memset要去掉。 解题思路就是跟CLJ的一模一样啦。 #pragma warning(disable:4996) #include<cstring> #include<string> #include<iostream> #include<cmath> #include&
·
2015-11-12 22:48
poj
SPOJ
NSUBSTR Substrings 后缀自动机
人生第一道后缀自动机,总是值得纪念的嘛。。 后缀自动机学了很久很久,先是看CJL的论文,看懂了很多概念,关于right集,关于pre,关于自动机的术语,关于为什么它是线性的结点,线性的连边。许多铺垫的理论似懂非懂。然后看了下自动机的构造发现代码倒是挺简单,但是理解原理却是十分的困难,最后在网上找到一篇带例子的讲解帖子,我感觉算是能够说服我的吧放个链接: http://blog.sina.com
·
2015-11-12 22:48
substring
SPOJ
7259(Light Switching)
数学模型: 维持一个01序列,支持2种操作: 1、将给定区间内的数取反; 2、查询给定区间内1的个数。 这题就是“暑假集训每日一题0712”的简化版 View Code #include <stdio.h> #define N 100001 int n,m,ans; int sum[4*N],rev[4*N]; void update(int cur) {
·
2015-11-12 22:55
switch
【
spoj
705】 Distinct Substrings
【题目描述】 给定一个字符串,计算其不同的子串个数。 【输入格式】 一行一个仅包含大写字母的字符串,长度<=50000 【输出格式】 一行一个正整数,即不同的子串个数。 【样例输入】 ABABA 【样例输出】 9【思路】 一看就知道是后缀数组题啦~但是我不会写QAQ。。只好现学现用啦~ 在字符串最后补上一个'$',不因为别的只因为它比‘A’还要小。。不然你补ascII码是0的也
·
2015-11-12 22:40
substring
SPOJ
130_Rent your airplane and make money_单调队列DP实现
题意比较简单,状态转移方程也比较容易得出: f[i]=max{ f [ j ] }+p[i],(j的结束时间在i开始时间之前) 若i开始之前没有结束的j,则f[i]=p[i]; 因数据量太大(n<=10000)因此必须优化,这里使用单调队列降低时间复杂度 首先按开始时间排序,队列里存的是编号,队列要求是开始时间严格递增,f[i]利润值严格递增,每次只需维护单调队列,就能将dp部分降到
·
2015-11-12 22:23
Make
SPOJ
1421_Goods_循环节
题意:1~n的一个排列,两两互换,每个位置每天只能做一次交换,问最多几天能交换成1~n,并且输出交换步骤。 解法:把该置换中所有的循环节找出,各循环节之间的交换是并行的,两两不相关,每天只需在循环节内部交换。 若循环节长度为1,则无需交换,若循环节长度为2,则只需交换一次,若循环长度>2,则只需要交换2次。 置换方法:每个循环节中的第一个和最后一个交换,第二个和倒数第二个交换.
·
2015-11-12 22:21
poj
回归?
开个后缀数组的长比赛,然后再攻克一下树链剖分和动态树问题,
SPOJ
的那个qtree系列我垂涎好久了…… 希望悲剧不要继续……重写一份简历,再投go
·
2015-11-12 21:53
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-12 21:43
substring
SPOJ
COT2 Count on a tree II(树上莫队)
题目链接:http://www.
spoj
.com/problems/COT2/ You are given a tree with N nodes.The tree nodes are
·
2015-11-12 21:33
count
SPOJ
220 Relevant Phrases of Annihilation(后缀数组)
You are the King of Byteland. Your agents have just intercepted a batch of encrypted enemy messages concerning the date of the planned attack on your island. You immedietaly send for the Bytelandian C
·
2015-11-12 21:48
后缀数组
SPOJ
375 Query on a tree(LCT边权)
之前做了两道点权的LCT,这次做一下边权的LCT.上网找了一下资料,发现对于边权的LCT有这么两种处理方法,一种是每条边建一个点,于是边权就转成点权了。另外一种则是每个边权对应到点权上,也就是每个点对应它的父边,这就要求树不能换根,不换根提路径是有点蛋疼的,所以就需要知道怎么在不换根的时候提取出u到 v的路径,实现的方法是基于expose的一种lca。 传统的expose是一直expose到根,
·
2015-11-12 19:52
query
上一页
12
13
14
15
16
17
18
19
下一页
按字母分类:
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
其他