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
TJOI
bzoj 3172: [
Tjoi
2013]单词
1#include 2#include 3#include 4#defineM1000008 5usingnamespacestd; 6charch[M]; 7inta[M][27],n,cnt=1,fa[M],f1[M],ans[M],q[M]; 8longlongsum[M],aa; 9voidjia() 10{ 11intnow=1; 12for(inti=1;i1;s
xiyuedong
·
2016-03-22 23:00
3996: [
TJOI
2015]线性代数|最小割
只有当Ai和Aj都为1时才会获得Bi,j的价值,在Ai为1的时候同时又会损失Ci的价值。经典最小割模型#include #include #include #include #include #include #include #include #include #include #include #defineN1000001 usingnamespacestd; intsc() { inti=
ws_yzy
·
2016-03-15 07:00
最小割
BZOJ 3997
TJOI
2015 组合数学
此题贪心可解……提示:1.对于一个格子而言,其实只有两种方式能够走到他2.如果把每一次走当作水流流过的话,那么水流最好能够停在左边,因为这样的选择空间更大3.如果说应该先处理方案数最少的点,那么应该是右上角,因为要到那个点只有一条路径代码后详解:#include#include#include#include#include#include#include#include#include#incl
Fuxey
·
2016-03-13 17:10
贪心
贪心
BZOJ 3997
TJOI
2015 组合数学
此题贪心可解……提示:1.对于一个格子而言,其实只有两种方式能够走到他2.如果把每一次走当作水流流过的话,那么水流最好能够停在左边,因为这样的选择空间更大3.如果说应该先处理方案数最少的点,那么应该是右上角,因为要到那个点只有一条路径代码后详解:#include#include#include#include#include#include#include#include#include#incl
Fuxey
·
2016-03-13 17:10
贪心
贪心
BZOJ 3997
TJOI
2015 组合数学
此题贪心可解……提示:1.对于一个格子而言,其实只有两种方式能够走到他2.如果把每一次走当作水流流过的话,那么水流最好能够停在左边,因为这样的选择空间更大3.如果说应该先处理方案数最少的点,那么应该是右上角,因为要到那个点只有一条路径代码后详解:#include #include #include #include #include #include #include #include #incl
Fuxey
·
2016-03-13 17:00
贪心
[bzoj3172][
TJOI
2013]单词
题目大意给定许多个单词,求每个单词在所有单词中出现的次数。SAM显然可以用SAM做。一种是在单词与单词间加入字符{,第二种是trie上建sam,最简单当然是建广义后缀自动机。建后缀树做法可以看用SAM建广义后缀树#include #include #include #definefo(i,a,b)for(i=a;i=b;i--) usingnamespacestd; constintmaxn=25
WerKeyTom_FTD
·
2016-03-11 14:00
【bzoj3997】[
TJOI
2015]组合数学 dp
非常奇怪的题第一想法是最小流,显然不可行用到一个性质:如果(i,j)与(i',j'),仅当(i',j')在(i,j)的左下方时,(i,j)无法到达(i',j')那么把矩阵左右翻转,条件变成了在i和j的右下方时才可以选那就可以dp了dp[i][j]表示(1,1)~(i,j)这个矩阵中的答案dp[i][j]=max(dp[i-1][j-1]+a[i][j],max(dp[i-1][j],dp[i][j
u012288458
·
2016-03-08 21:00
【bzoj3998】[
TJOI
2015]弦论 后缀自动机
Description对于一个给定长度为N的字符串,求它的第K小子串是什么。Input第一行是一个仅由小写英文字母构成的字符串S第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个。T=1则表示不同位置的相同子串算作多个。K的意义如题所述。Output输出仅一行,为一个数字串,为第K小的子串。如果子串数目不足K个,则输出-1SampleInputaabc 03 SampleOutput
LOI_DQS
·
2016-03-01 11:00
bzoj3172 [
Tjoi
2013]单词
题目链接构造AC自动机BFS更新答案由于做完fail后有BFS序,直接用就可以了1#include 2#include 3#include 4#include 5#include 6#include 7#include 8#include 9#include 10#include 11#include 12#include 13#definerre(i,r,l)for(in
HugeGun
·
2016-02-29 21:00
BZOJ3998: [
TJOI
2015]弦论
一开始想构造后缀树来着后来发现就是SAM上面跑一下就好了时间感人QAQ#include #include #include usingnamespacestd; charc; inlinevoidread(int&a) { a=0;doc=getchar();while(c'9'); while(c='0')a=(atime=1; ne->end=true; ne->len=last->len+
liutian429073576
·
2016-02-26 21:00
【bzoj3172】[
Tjoi
2013]单词 AC自动机+fail树
Description某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。Input第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N #include #include #include #include #include usingnamespacestd; constintSZ=10000
LOI_DQS
·
2016-02-24 19:00
[BZOJ3999] [
TJOI
2015]旅游
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=3999题目大意给定一棵树,树上有权值,要求支持查询树上两点a—>b(有方向)间路径上max(xj−xi)且j到a的距离比i大以及路径整体+c题解树链剖分+线段树合并注意细节!!const maxn=50040; type data=record a1,a2,minn,maxx:longint;e
slongle_amazing
·
2016-02-22 10:00
bzoj 3172 [
Tjoi
2013]单词(fail树,DP)
3172:[
Tjoi
2013]单词TimeLimit: 10Sec MemoryLimit: 512MBSubmit: 2327 Solved: 1093[Submit][Status][Discuss
hahalidaxin
·
2016-02-20 08:00
【BZOJ 3172】 [
Tjoi
2013]单词
Description某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。Input第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N 2#include 3#include 4#include 5#include 6#definelllonglong 7#defineinf10000
抬头仰望浮云飘过
·
2016-02-20 07:00
bzoj3998 [
TJOI
2015]弦论(SAM)
Description对于一个给定长度为N的字符串,求它的第K小子串是什么。Input 第一行是一个仅由小写英文字母构成的字符串S第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个。T=1则表示不同位置的相同子串算作多个。K的意义如题所述。Output输出仅一行,为一个数字串,为第K小的子串。如果子串数目不足K个,则输出-1SampleInputaabc03SampleOutputa
hahalidaxin
·
2016-02-19 13:00
BZOJ3175
Tjoi
2013 攻击装置(二分图匹配)
传送门Description给定一个01矩阵,其中你可以在0的位置放置攻击装置。每一个攻击装置(x,y)都可以按照“日”字攻击其周围的8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1),(x+1,y+2),(x+2,y+1)求在装置互不攻击的情况下,最多可以放置多少个装置。Input第一行一个整数N,表示矩阵大小为N*N。
geng4512
·
2016-02-14 20:00
BZOJ3173
TJOI
2013最长上升子序列(Treap+ZKW线段树)
传送门Description给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少?Input第一行一个整数N,表示我们要将1到N插入序列中,接下是N个数字,第k个数字Xk,表示我们将k插入到位置Xk(0 #defineMAXN100005 structnode{intc[2],sz,rnd;}t[M
geng4512
·
2016-02-14 20:00
线段树
treap
zkw
zkw线段树
BZOJ3172
TJOI
2013 单词
传送门Description某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。Input第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N #defineMAXN2000000 #defineMAXC26 inta[MAXN][MAXC],pre[MAXN],sz=1,q[MAXN],cnt[M
geng4512
·
2016-02-14 20:00
BZOJ3171
Tjoi
2013 循环格
传送门Description一个循环格就是一个矩阵,其中所有元素为箭头,指向相邻四个格子。每个元素有一个坐标(行,列),其中左上角元素坐标为(0,0)。给定一个起始位置(r,c),你可以沿着箭头防线在格子间行走。即如果(r,c)是一个左箭头,那么走到(r,c-1);如果是右箭头那么走到(r,c+1);如果是上箭头那么走到(r-1,c);如果是下箭头那么走到(r+1,c);每一行和每一列都是循环的,
geng4512
·
2016-02-14 20:00
【bzoj3171】[
Tjoi
2013]循环格 (费用流)
题意:N*M的矩阵,每个格子有一个LRUD标记表示走到这个格子后下一个格子往哪个方向走。走出边界后自动到另一端。问至少修改几个格子使得在任意一个格子上开始都可以最后回到自身。N,M #include #include #include usingnamespacestd; #defineclr(a)memset(a,0,sizeofa) #definerep(i,a,b)for(inti=a;i=
u011542204
·
2016-02-14 17:00
[bzoj3173][
TJOI
2013]最长上升子序列
题目大意共n次操作,第i次操作在第xi个数后插入数字i并询问当前最长上升子序列。n #include #include #include #definefo(i,a,b)for(i=a;i=y){ split(tree[x][0],y,l,r); tree[x][0]=r; r=x; } else{ split(tree[x][1],y-size[tree[x][0]]-1,l,r); tree[
WerKeyTom_FTD
·
2016-02-14 11:00
[bzoj3997] [
TJOI
2015]组合数学
题目要求最小路径覆盖。。DAG的最小路径覆盖=最长反链=n-对应二分图最大匹配数。。反链:一些点的集合,使得任意两点之间不存在路径。最长反链:反链里面节点数的最大值。一开始还以为要跑网络流。。。最后根据黄学长的题解可得,这题应该求的是最长反链TAT因为是只能往下或者往右的网格图,所以反链的点一定是左下-右上的。dp一下就好了。。f[i][j]表示反链中最右上的节点在第i行第j列时的最长反链。map
czllgzmzl
·
2016-02-13 00:00
【BZOJ 3997】: [
TJOI
2015]组合数学
3997:[
TJOI
2015]组合数学TimeLimit:20SecMemoryLimit:128MBSubmit:550Solved:392[Submit][Status][Discuss]Description
ALPS233
·
2016-02-01 19:00
数学
【BZOJ 3997】: [
TJOI
2015]组合数学
3997:[
TJOI
2015]组合数学TimeLimit:20SecMemoryLimit:128MBSubmit:550Solved:392[Submit][Status][Discuss]Description
ALPS233
·
2016-02-01 19:00
数学
BZOJ 4000: [
TJOI
2015]棋盘( 状压dp + 矩阵快速幂 )
状压dp,然后转移都是一样的,矩阵乘法+快速幂就行啦.O(logN*2^(3m)) ---------------------------------------------------------------------------------------------#include#include#include usingnamespacestd; #defineb(x)(1>(k-i))&
JSZX11556
·
2016-01-25 10:00
bzoj4400:
tjoi
2012 桥
先传代码再填坑#include #include #include #include #include #include #include #include #defineN100005 #defineM400005 #defineINF0x7FFFFFFF usingnamespacestd; inlineintread(){ intret=0;charch=get
wangyurzee
·
2016-01-21 16:00
BZOJ 3172: [
Tjoi
2013]单词|后缀数组
这个ac自动机做法貌似很显然然而我用的后缀数组(专业制造麻烦……其实就是为了练后缀数组)这题二分答案会有很多坑爹的地方原因就是这height数组存的是suffix(sa[i])和suffix(sa[i-1])的LCP二分答案的时候要注意不过貌似直接暴力找也挺快 orzws_fqk暴力虐二分……#include #include #include #include #include #include
ws_yzy
·
2016-01-11 09:00
后缀数组
二分
3172: [
Tjoi
2013]单词 后缀数组
写了一发后缀数组,二分究竟哪里写错了QAQ,无奈改成了暴力过了。后缀数组的作法比较显然,比起fail树来好想多了。。(我太弱啦)。把各个串连起来之后从每个位置向两侧扩展,只要满足height[i]>=单词长度就可以。最后求出长度输出。无奈之下把logN改成了N。。#include intpos[205],l[205]; intn,len; charch[1001005],s[1001005]; i
Phenix_2015
·
2016-01-10 15:00
3172: [
Tjoi
2013]单词 fail树
首先建一棵Trie,我们考虑AC自动机中fail指针的含义。与KMP中的fail指针相似,它指向的位置代表了一个相同前后缀。所以我们首先给每个点打标记,即每个前缀(root->此点)都出现了一次,然后在构造完fail指针后,我们会发现fail指针反向后是一棵树沿着fail指针扫一遍其实就是沿着树边向根扫一遍。只在插入时将每个串的每个节点sum++那么每个串终点所在fail树的子树中sum的总和就是
Phenix_2015
·
2016-01-10 11:00
bzoj3172【
TJOI
2013】单词
3172:[
Tjoi
2013]单词TimeLimit: 10Sec MemoryLimit: 512MBSubmit: 2178 Solved: 1012[Submit][Status][Discuss
AaronGZK
·
2016-01-05 23:00
AC自动机
bzoj
TJOI
2015
day1:T1:其实手推一下矩阵的式子就知道是最小割模型,和noi2006的最大获利大同小异。@:胡波涛论文《最小割模型在信息学竞赛中的应用》 T2:结论:定义:偏序关系:满足自反,反对称,传递的关系是自反关系链:偏序集A的一个子集B,并且满足B中元素两两可比反链:偏序集A的一个子集B,并且满足B中元素两两不可比集合的划分:集合A的划分是很多个集合,这些集合的交集为空,并集为A Dilwort
jzhang1
·
2015-12-30 14:00
151224总结
151223
TJOI
2015D1 T1有意义的字符串然后就可以矩阵快速幂求出an+1啦~注意, 1.n=0时要特判,就是在这儿丢了5分。。。
beginendzrq
·
2015-12-24 07:00
总结
bzoj 3172(AC自动机)
3172:[
Tjoi
2013]单词TimeLimit: 10Sec MemoryLimit: 512MBSubmit: 2109 Solved: 978[Submit][Status][Discuss
M_AXSSI
·
2015-12-19 19:00
151216总结
TJOI
2015D2T1给一颗树,每次给出A、B,求A->B的路径上max{aj-ai}(i先于j经过),然后将A->B的路径上的点全部加上v裸的树链剖分,主要是线段树最大最小值的合并操作,线段树维护区间最大值
beginendzrq
·
2015-12-16 20:00
总结
[BZOJ3172][
Tjoi
2013]单词
[
Tjoi
2013]单词Description某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。
hbhcy98
·
2015-12-06 21:00
AC自动机
fail树
【BZOJ】4001: [
TJOI
2015]概率论
题意求节点数为\(n\)的有根树期望的叶子结点数。(\(n\le10^9\))分析神题就打表找规律..题解方案数就是卡特兰数,$h_0=1,h_n=\sum_{i=0}^{n-1}h_ih_{n-1-i}\(。设叶子数量和为\)f_n\(,则得到\)f_n=2\sum_{i=0}^{n-1}f_ih_{n-1-i}$设\(H(x)\)表示\(h_n\)的母函数,\(F(x)\)表示\(f_n\)的
iwtwiioi
·
2015-11-22 18:00
【BZOJ】3997: [
TJOI
2015]组合数学
题意\(N\timesM\)的网格,一开始在\((1,1)\)每次可以向下和向右走,每经过一个有数字的点最多能将数字减1,最终走到\((N,M)\)。问至少要走多少次才能将数字全部变为\(0\)。(\(N,M usingnamespacestd; typedeflonglongll; lld[1005][1005]; intmain(){ intT; scanf("%d",&T); while(T
iwtwiioi
·
2015-11-22 18:00
【BZOJ】3996: [
TJOI
2015]线性代数
题意给出一个\(N\timesN\)的矩阵\(B\)和一个\(1\timesN\)的矩阵\(C\)。求出一个\(1\timesN\)的01矩阵\(A\),使得\[D=(A*B-C)*A^T\]最大,其中\(A^T\)是矩阵\(A\)的转置。(\(n usingnamespacestd; inlineintgetint(){ intx=0,c=getchar(); for(;c57;c=getcha
iwtwiioi
·
2015-11-22 18:00
BZOJ 3172([
Tjoi
2013]单词-后缀数组第一题+RMQ)
3172: [
Tjoi
2013]单词 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 
·
2015-11-13 16:37
后缀数组
【BZOJ】3172: [
Tjoi
2013]单词(后缀自动机)
http://www.lydsy.com/JudgeOnline/problem.php?id=3172 随便搞个sam就行了。(其实一开始看到数据n<=200, 单词长度不超过1e6,然后感觉。。。200*1e6?。完全不可做。。可是后来看到别人都只开了1e6的数组,那么放心了。。题目没说清楚。 在做着题时发现个问题囧。就是并不是自动机上每个状态都是right初始化为1后再进行更新,而
·
2015-11-13 11:57
ZOJ
[
TJOI
2013]松鼠聚会
坐标变换 看图 B - G 是原来的一个单位 B - J 也是。 我们发现 切比雪夫距离 可以在坐标旋转后转换为 曼哈顿距离 。 而曼哈顿距离可以在O(n)内计算出(求出每个x到xi的距离,同理求y,相加求和即可); 具体可以看我的代码: /** * Problem:Meeting * Author:Shun Yao * Time:2013.5.21 * Res
·
2015-11-07 11:35
T
[
TJOI
2013]单词
可以用后缀数组来做。 我说以下ac自动机的做法: 加入每个单词,对路径上的所有点累计访问次数。 构建fail指针。 把每个节点的访问次数累加到它的fail上。具体有代码。。(我写的很挫 - -) /** * Problem:Word * Author:Shun Yao * Time:2013.5.21 * Result:Accepted * Memo:AC-auto
·
2015-11-02 19:49
单词
[
TJOI
2013]循环格
费用流, 因为要求全部都是回路, 每个点出入度都为1,拆点分别代表出点和入点,剩下不多说。 注意边界可以走 即n->1 /** * Problem:Grid * Author:Shun Yao * Time:2013.5.21 * Result:Accepted * Memo:CostFlow */ #include <cstring> #
·
2015-11-02 19:48
循环
TJOI
2013 DAY2
/* * Problem:
TJOI
2013-day2-Sequence * Author: Shun Yao */ #include <string.h> #include
·
2015-10-31 12:34
a
BZOJ3998 : [
TJOI
2015]弦论
求本质不同的第k小子串:求出后缀数组,从0开始扫到n-1,到sa[i]为止一共有sum[i]个本质不同的子串sum[i]=sum[i-1]+n-sa[i]-height[i]直到sum[i]>=k为止 求第k小子串:构造后缀树,设f[x]表示以x为前缀的子串数目,g[x]表示以x为前缀的后缀数目查询时从根开始一路往下分治即可 #include<cstdio>
·
2015-10-31 11:52
ZOJ
BZOJ 3173: [
Tjoi
2013]最长上升子序列( BST + LIS )
因为是从1~n插入的, 慢插入的对之前的没有影响, 所以我们可以用平衡树维护, 弄出最后的序列然后跑LIS就OK了 O(nlogn) -------------------------------------------------------------------- #include<bits/stdc++.h> #define rep(i, n) f
·
2015-10-31 11:49
BST
bzoj 4001 [
TJOI
2015]概率论 数学
4010: [HNOI2015]菜肴制作 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=4001 Description Input 输入一个正整数N,代表有根树的结点数 Output 输
·
2015-10-31 08:03
400
bzoj 3172: [
Tjoi
2013]单词 AC自动机
3172: [
Tjoi
2013]单词 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline
·
2015-10-23 09:49
AC自动机
BZOJ 3173 [
Tjoi
2013]最长上升子序列 Treap+LIS
题意:链接方法:Treap+LIS解析:刚看到题还蒙了一会,无从下手啊--!后来寻思找找规律。画画样例以及瞎编了两组数据之后发现点问题…答案递增?然后才反应过来--,当我们从小到大插入的时候,插入后的情况是不影响插入前的。所以这样的话我们可以把整个序列先弄出来?之后求一个LIS,这时候对于每一个数来说,他都有个LIS值,当然这个可能不是他插入之后的最优解,因为之前的值可能比他插入之后还要大。所以我
wzq_QwQ
·
2015-09-04 07:00
【
TJOI
2013】【BZOJ3172】单词
Description某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。Input第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N #include #include #include #include #defineMAXN2001000 usingnamespacestd; charch[
CreationAugust
·
2015-08-31 07:00
后缀自动机
模式串匹配
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
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
其他