OceanEye's Blog

很多人即使只见过一面,已经算见过了最后一面。

@OceanEye7年前

05/7
22:56
OI

BZOJ2434

AC自动机的好题,充分利用了fail树的性质

性质:S串中每个包含了T的后缀的fail指针一定经过若干层指向T

fail指针不成环

把fail树上的点dfs重标号

处理单个询问时可以把S串中的每个节点的DFS序丢进树状数组里面

查询T对应节点的DFS区间即可

处理许多询问的话离线处理即可

为了保证在树上不跑 \(x^2\) 次

可以模拟之前插入节点的方式来计算……

当然开个vector在节点上记录id也是可行的……

代码应该很好看懂

[但是我写的代码一般都巨长所以没多少人看哈哈哈]

 

BZOJ2434

@OceanEye7年前

05/6
13:45
OI

BZOJ2780

广义后缀自动机

良心题,教会了我怎么写广义后缀自动机……

其实就是加完一个串之后把last丢回root接着跑啊qaq

这是非TRIE树版本

 

TRIE树什么的等会再写

BZOJ2780

@OceanEye7年前

05/4
19:49
OI

BZOJ4318

期望DP
题目要求维护三次方
所以要把二次和一次的期望也给维护了,接着考虑我们DP的含义是什么。
DP[3][i]=DP[3][i-1] + (增长幅度=x^3-(x-1)^3)*(增长概率=p[i])
上面那个三次方展开一下就可以做了

BZOJ4318

@OceanEye7年前

05/3
19:03
OI

BZOJ4012

某码农题
动态点分治[或者说点分树?]
转化一下[差分一下]就可以看出
要维护一棵树
可以在log~log方的时间复杂度内跑完整棵树的前缀和[1,l-1],[1,r]
于是用了点分树
树链剖分可不可以还没想过,目测是不行的
用了vector来控制空间
当然有大佬愿意写动态开点线段树或者平衡树也是很强的orz

BZOJ4012

@OceanEye7年前

05/3
18:56
OI

BZOJ1419

期望DP
和班上的一个物理大佬一起搞了二十分钟吧……然后发现这个期望(R,B)只和(R-1,B)以及(R,B-1)相关
然后就一个for循环再用一下滚动数组就可以了
dp[r][b]=(dp[r][b-1]-1)*b/(r+b) + (dp[r-1][b]+1)*r/(r+b)

BZOJ1419

@OceanEye7年前

05/2
20:40
OI

BZOJ3236

看着这道题觉得很神啊

于是写了个n根号nlogn的就开始跑了

然后就跑过去了……

95s的AC

不过写这份代码好像只花了我十分钟?说明我码力还算不错么qwq[单身狗的怨念]

 

BZOJ3236

@OceanEye7年前

05/2
20:04
OI

BZOJ1324

有些炸裂的题解

题目是一道最大点独立集,比较裸的那种

最大点独立集=最小点覆盖集的补集

然后套最小点覆盖集用sum-tot_flow即可

 

BZOJ1324

@OceanEye7年前

04/28
23:34
OI

BZOJ1497

最小割

从源点向每个人连收益大小的边

人向站连大小为INF的边

站向汇连大小为成本的边

这个时候的割有三种情况:

1.把收益割掉了,此时支出>收入

2.把支出割掉了,此时支出<收入

3.支出和收入同时割掉了,支出=收入

总的答案就是sum-割

 

BZOJ1497

@OceanEye7年前

04/28
20:39
OI

BZOJ1486

久违的1A

题目很裸……当年的男人八题现在看来也不过如此吧。

题目的数据范围给的不是很清楚,所以就没有用树状数组用了快排。

每次分治的时候要取重心来保证复杂度。

恩还是有些地方比较傻逼的

没有卡常数

 

BZOJ1486

@OceanEye7年前

04/28
20:07
OI 杂记

GDOI记

如题……

DAY 0

[8:00 p.m.]

颠了一个下午的车来到了东莞。

天气很好,基本上就是太阳太阳太阳……果然天气预报一直都是不准的呢。然后在酒店里面就呆了一会,就去东华高中吃饭。跟着某mhx一起看神奇宝贝精灵宝可梦。饭后和mhx一起被一排老师奶炸……还被爆出机房打机的黑历史……心塞

[11:35 p.m.]

临睡前A了两道题,心情愉悦。

GDOI 2017 Bless All.

DAY 1

[11:56 p.m.]
进考场的时候没什么感觉,先拍了一下自己的vim配置……然后发现没有背全?[茫然.jpg]

接下来开考看题。一上来看第一题五分钟,这不是裸一道KMP签到题吗……然后拍了一个半小时= =确认无误之后看了看T2……题面太长跳过了。 看着T3想着这题不可做啊,就写了个35分的暴力,自己过了样例和自己的几个数据时候就没有接着看了。
回头看T2,发现自己会一个n根号n的莫队算法,就开始写……写到考试结束还是有一个小bug,但是无奈还是交了

中午吃饭和其他人交流的时候突然脑子好了……想到T3应该使用广义SAM来跑跑跑接着按照dep深度来过一遍就能做的题目。 T2 whj大神给了个nlogn的神做法……后来被他自己叉掉了。
后来听评讲,第一题不想听,第二题出题人给了O(nlogn)和O(n)的做法[真·神做法]。第三题就是广义SAM。T4是NTT套路题,但是没碰过NTT所以理所应带的没有分了。zawedx还给了个nlogn的做法……很可取的做法

后来出成绩的时候发现只有五十,T1完全没分,全是RE。第一反应是数组开小了,赶紧去复评。
……数组真开小了,直接丢了一百分

睡觉了……明早还有一场考试……看看能不能翻盘吧233
[看脸+看实力的考试啊qwq]

 

DAY2

实力作死吧T3搞炸了

T1签到题分层图SPFA随便过,然而还是有很多人被卡常数[???]

T2出题人给了个有理有据的暴力算法大力用n平方+优化艹掉了n=1e6的数据……不得不服

T3就是个n方的特殊一点的DP,之后利用树状数组瞎搞就可以了

就可以了……然后我作死把那个N方的改成了nlogn的,于是关键的生成字符串就求不了了,就炸了。

T4场上一看这不是炒鸡码农动态点分治么,果断不写……【事实证明这个决定有一半是错误的】

讲评的时候果真听见出题人在说这个点分树,但是好像码量也不是太大?

说什么只要用到期望线性可加就可以搞出一个log方……果然是我too young

GG

DAY3

bless all

先一步离开了东莞,不过早上睡到十二点还是很爽的:-D

 

事后

严重怀疑自己被毒奶致死,,明年再战

GDOI记