- 博客(101)
- 收藏
- 关注
原创 训练总结报告
假期的一段的训练告一段落了。训练的时候出现了许多的问题,这里总结一下常出现的问题1.题意不明的时候很多,当你感觉代码没错的时候却错了好几发,最好是要好好看一下题意,有可能会有细节没把握好,卡题是最难受的。2.就是感觉没有能做出来的题的时候要多尝试,感觉好多题都暴力优化玄学出来了,电脑不要空着。3.多和队友商讨,很多思维题都是你一句我一句就来灵感了,两个人比较全面。4.用了优化范围还大的题...
2018-05-01 23:06:26
150
原创 4月28日
这两天也算是a了不少题了,第一天主要是FZU - 2283,题意是模拟三子棋,问,接下来要下的人能否在两步之内胜利或者在两步之内必胜,而且对手很会玩,刚开始没看到在两步之内必胜,一直过不去,主要是会玩和必胜,先枚举第一步,然后再枚举对手的情况,如果对手下完这一步不能赢就不行,然后必胜就是下完两步之后,枚举所有情况如果有两种种情况能赢,就是必胜。然后是FZU2278,是一道期望dp,两...
2018-04-28 21:16:05
168
原创 4月26日
这两天打了一套手速练习赛,还有一场真题,主要a的是HDU - 6024,题意大概是,有n个教室,现在想在这n个教室中建一些超市,问你最少费用为多少?费用有两种情况第一种情况是在第i个教室建超市,费用为ci第二种情况是不建超市的教室的费用为它和它左边最接近的超市的坐标之间的距离,然后进行dp,dp[i][0】表示在第i个教室不建的情况下的最少费用,这个要把前面所有的dp[j][1]都走一遍,主要这个...
2018-04-26 23:25:10
236
原创 4月24日
这几天打了一场比赛,手速练习赛服务器坏了,今日头条杯的比赛,就a了一道简单dp,f题,题意:给你一个矩阵变换m次之后求从左上角到右下角的路线里,权值最大的是哪个,刚开始读错题了,以为每次变换都要求,就没做,后来明白过来,就是简单的矩阵变换,然后就是一个dp结束。主要还是c题,题意:由n个节点组成的树,求这颗树有多少不重复的无向图。赛后补的题,树形dp。 dp[i]是以i为无向图的起...
2018-04-24 23:24:04
213
原创 4月21日
这两天光打比赛了,三棱锥这道题,题意:x = 0, y = 0, z = 0,以及平面 x + y + z = K 围成了一个三棱锥。给定k,问在这个三棱锥里问三棱锥的整数有多少,我们可以考虑从0到k每一个面上的整数点的数目,然后我们发现这就是组合数的和,用组合数公式可得(k)(k+1)(k+2)/6这个公式,主要mode不是很会,这里有个很巧的做法,就是每次mode完之后再加一下mode。后进生...
2018-04-21 23:10:12
150
原创 4月19日
这两天打了一场手速练习赛,看博客,重点看的是hdu 3016,题意:有n块板子,一个人从最高的板子开始往下跳,每次只能从一个板子的左或者右端点往下跳,同一个高度只会有一块板子。问你到最下面,能获得的最大分数是多少。如果中间分数<0了,游戏直接结束,输出-1。 先将所有的木板按高度从小到大排个序,然后用线段树来计算从一块木板可以跳到哪一个木板,然后进行单点查询,然后将这段木板更新...
2018-04-19 22:54:27
123
原创 4月17日
这几天打了两场比赛,看了几篇博客。金马五校赛,主要a了一道数位dp,然后二数这道题与队友贪心了一下。小Y作比赛这一道题倒是知道他的贪心思想,但是当时写不出来,后来看大佬的用双指针遍历。数字游戏这道题居然有人一下一下式样例过了,而且不是一个两个,失策失策。当时想写的怕超时,结果就是暴力加剪枝。昨天打的比赛主要是要注意一下文件输入输出的情况。比赛博客主要有hdu5014,题意:给出一个由0-n这n+1...
2018-04-17 22:29:07
128
原创 4月14日
这两天打了两场比赛,补了补题,看了一点博客,第一场比赛b题排序的时候要把小数末尾的0给去除,没想到会在这个上面卡数据。吉姆的奇思妙想,也是看了赛后解析才有思路的,先要预处理出来所有前i个deg方*freq的和,前i个freq的和。然后二分找出最大j的取值t,使(a*deg【j】方<b*m),然后答案就可以求出来了,不过不能用公式直接求会爆,要用二分。然后题解用了upper_bo...
2018-04-14 23:35:04
270
原创 4月12日
这两天主要是打了一场手速练习赛与看博客,博客上倒是看到了不少的老题,比较有意思的题是poj2513,用字典树来将字符串与数字一一对应起来,欧拉回路判断是否为连通图,并查集与路径压缩,缺一不可。又复习了一下并查集的离线处理。自动机的题也出现了,道不是很难,不过指针的模本还不是很熟。优先队列出现的频率很大,在很多题里优化起了很大的作用,平常打比赛a题的时候还不是经常想起来用这个。还有好多...
2018-04-12 23:53:24
112
原创 4月8日
这几天主要是做dp的题,找感觉,然后手速练习,还是手残,然后开始复习后缀数组这个东西,模板又忘干净了,又开始看模板,最后打了一场模拟赛,dp的水题也做完了,很让人头疼,英语也很让人头疼,主要是队友看到像dp再扔给我,后缀数组,主要跑模板,也捡起来了,模拟赛,我单人做出两道,与队友一起做出来两道,怎么感觉,模拟赛就跟我学的知识点没有什么关系一样的,然后赛后补题发现,题解说的都很简单的,该暴力的暴力,...
2018-04-08 22:44:56
114
原创 4月1日
这几天主要复习了一下kmp,ac自动机的内容,a了几道题,并且打了一场比赛,首先AC自动机差点忘干净了,主要是next数组忘了是什么含义了,这里在打一遍含义,next [j] = k,代表j 之前的字符串中有最大长度为k 的相同前缀后缀。在字符串失配的时候就要运用next数组找到模式串将要跳到哪一个位置。然后又手跑了一遍ac自动机的过程,比赛的时候水了,有道数位dp的题没有做出来,也没想到要去向那...
2018-04-01 22:29:39
125
原创 3月28日
这几天打了一场比赛,A了几道水题,看了一下概率dp,比赛啊的题都很水,有一道刚刚做过去的共同富裕,很快a了然后是一道转向的题,也是比较好想的,就改变输出就好了,然后是一道贪心,想法很好,结果没有贪出来,会超时,队友用网络流来做,也是超时的,赛后看到来做用了一下优化,真是想不到啊。数学题,求次数,明明感觉公式没错啊,结果还是推错了,大佬的公式好简单的,我还是推不出来。然后是又学到了一招,cin>...
2018-03-28 23:22:57
119
原创 3月21日
这几天主要是边做题边进行知识点的复习,主要是状态压缩dp与搜索模板的复习,还有就是做了许多的思维的题,状态压缩的题有些是需要矩阵快速幂,有些是01背包,组熬药就是如何压缩状态,搜索模板还是比较好理解的,但是这些题有很多是不只是搜索,要增加别的东西,搜索的题做的还是比较困难的,思维题不只是贪心还有其他的想法题,还是比较难想的,不过想到了就很好操作了,还有就是复习了一下二分吧,做了几道二...
2018-03-21 23:05:35
141
原创 3月15日
这几天主要是a dp的题与思维的题,并看了几道树链剖分的题,树链剖分基础题是求lca与维护,看了poj 2763 Housewife Wind与poj 3237 Tree,几乎就是裸的树链剖分,然后是SPOJ QTREE - Query on a tree,给你一颗树,现在有两个操作,一种是改变某条边的权值,一种是查询点u到v之间的路径的最大边权。也是树剖的裸题。还有是BZOJ 2243: [SD...
2018-03-15 22:34:58
134
原创 3月11日
这三天主要仔细研究了一下数链剖分的模板,运用数链剖分求lca,与复习了一下dp,做了几道水题,看了一点lct。数链剖分的模版有点长,主要就是两次dfs来进行预处理,可以通过预处理内容进行单点修改来实现维护,也可以查询x到y的路径数据,也可以在线求lca。lct主要了解了access(x)操作,access(x)操作就是把xx的重儿子与xx断开,然后把从整个LCT的根到xx之间的路径都变为重边,与实...
2018-03-11 23:05:53
124
原创 3月8日
这几天主要研究的树链剖分的运作原理,指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结构来维护每一条链。定义size(x)为以x为根的子树节点个数,令v为u的儿子中size值最大的节点,那么(u,v)就是重边,其余边为轻边。可以用两次dfs来进行剖分,第一次dfs记录下所有的重边。然后第二次dfs就是连接重边形成重链,以根节点为起点,沿着重边...
2018-03-08 22:42:42
162
原创 2月28日
这两天看的是POJ 2774 Long Long Message与URAL1517. Freedom of choice这两道题,POJ 2774 Long Long Message这道题题意是给你两个长字符串,要你输出这两个字符串的最长公共连续子串长度。也是没想到可以这样,先将第二个字符串写在第一个字符串后面,中间用一个没有出现过的字符隔开,再求这个新的字符串的后缀数组。当suffix(sa[i...
2018-02-28 23:42:44
124
原创 2月26号
今天主要是研究后缀数组——处理字符串的有力工具这个论文来理解题目,并看了几题,首先是SPOJ 694Distinct Substrings这道题给定一个字符串,求不相同子串个数。每个子串一定是某个后缀的前缀,问题就等价于求所有后缀之间的不相同子串个数。然后依次处理每个后缀。每个后缀会贡献n-1-sa[i]-height[i]个新的前缀子串。SPOJ 705 New DistinctSubstrin...
2018-02-26 22:45:16
159
原创 2月25日
今天主要复习后缀数组的主要内容,并研读了一下博客,首先看的是POJ 1743 Musical Theme这道题,这道题题意是要给你一个长为n的数字序列,要你求出该序列中最长的满足下面要求的序列长度:原序列中存在不重叠的两个序列,这两个序列长度相同且将第一个序列的所有数字加上某个常数可以得到第二个序列。首先把问题转化成重复子串的问题,把原串每一位都与前一位相减。这样得出的新串如果有两个长度为n的子串...
2018-02-25 22:41:46
215
原创 2月6日
今天主要做了几道ac自动机的题,ac自动机模板还是比较难改的,一不小心就改错了,主要是几个地方要注意一下,首先是进行建树的时候子节点的单词需不需要减去"a"之类的东西,或者只有固定的单词的时候要把这些单词进行编码再来操作,然后下面的模板也要与他一样。然后match[]这个模板也是多种多样的,有的时候要进行更改getFail()这个函数,有时也是想不到的。然后状态压缩dp也是很神奇,进行压缩的时候要
2018-02-06 21:42:33
117
原创 2月5日集训
今天主要是做ac自动机的题,发现忘性真大啊,刚学了几天的代码就快忘了熟悉了一下模板开始做题了,然后题也是模板题,结果到了手上就敲不出来了,ac自动机这一块主要的题就是字符匹配有关,关键是存储字符串匹配的数量等信息,然后就要构造数组进行存储信息,当然也不一定要用数组了,可以用map或者什么的,然后再进行更改模板什么的,然后在看dp的一道题,已经不是这个模板了,于是又换了个模板,研究了一下,其实操作还
2018-02-05 21:51:03
129
原创 2月3日
今天还是看后缀数组,跑了几边代码,模板已经看懂了,基数排序比较难以理解,也是看懂了,它主要的精髓点是在排序的时侯低位排序并不影响高位排序,排完就完事了,本来还是不太理解x[sa[i]]=y[sa[i]]==y[sa[i-1]]&&y[sa[i]+k]==y[sa[i-1]+k]?p-1:p++;这一句的含义的,后来现在又明白了,p-1这一句话是将p-1赋值给x[sa[i]],然后这一句话判断的是两
2018-02-03 20:45:36
123
原创 2月2
今天还是怼后缀,感觉明白了很多,模板的整体意思已经懂了部分也懂了,已经会套模板了,然后中间细节还是搞不明白,模板的sa数组是减了1的,模拟了很多次才发现减了1,很崩溃啊,然后今天晚上跟队友A了一道水题,然后队友又a了一道题,最后研究了一道题还没研究懂,还有一道题用以为是用ac自动机,结果tle,然后大佬用kmp就过了,很崩溃。
2018-02-02 22:42:28
95
原创 2月1日
今天主要研究后缀数组,一个比较神奇的数组,与ac自动机相同的是能够解决多模板的文本匹配问题,但是AC自动机需要事先知道所有的模板而后缀数组需要先输入文本串后输入模板串。这里也可以看出来后缀数组是对文本串进行优化的。后缀数组有两种写法,一种用的倍增法另一种用的是dc3,看的是倍增,这里要用到基数排序,然后一系列操作就可以算出Rank[i]与SA[i]数组了,我也不知道为啥。然后构造最长公共前缀,He
2018-02-01 20:44:15
91
原创 1月31
今天还是看ac自动机的博客,主要是看ac自动机加dp的题,ac自动机加矩阵的题也有很多,我没看。ac自动机虽然可以与很多种dp相结合,但还是有规律可循的。加上dp的时候更换了模板,不再用last数组优化了,而是将树的很多节点连接起来,这里不多说了。与概率dp相结合很容易看出来,因为有概率吗,然后也是字符串与数匹配的问题,这个倒是很容易判断出来,这类题运用的是fill数组与构建的match数组,来进
2018-01-31 21:52:43
128
原创 1月30日
今天主要是看ac自动机的博客,题目主要是模板的应用与自动机加dp,题目主要是给你一个长串,在给你n个字串,问你子串与长串的匹配问题,主要是统计次数等,只要在模板上稍做更改就好,最多再建立一个数组与val数组并列但是两个数组含义不同并维护这个数组,有些题会有重复输入而且不能忽视的需要特殊处理,要用用map或数组来记录。自动机加dp没有看多少多少题,而且有的题用到了矩阵幂,也是不太会的。然后概率感觉也
2018-01-30 22:01:41
125
原创 1月29日
今天看ac自动机,搞清楚了模板,明白了ac自动机主要是怎么运行的,找了个题手敲了一下,ac自动机主要解决的是,给你很多个单词,然后给你一段字符串,问你有多少个单词在这个字符串中出现过的问题,重难点还是失陪指针的理解。
2018-01-29 21:12:14
102
原创 1月27日
今天主要整理了一下这几天学的知识点与题目总结了一下,然后讨论了一下•基础并查集,并不更改findset函数,主要是更改bind函数。•1. 判断是否能合并也就是改if函数。•2.判断图是否是联通,主要使用bind的return计算联通分量。•3.离线处理,因为并查集不能删边,所以要先吧输入的存储起来,然后倒序进行存边,最后将信息存储起来倒序输出。•根节点维护也是主要更改
2018-01-27 21:54:24
203
原创 1月26日
今天主要是做字典树与kmp的题,字典树主要是改模板,按照题意改模板就好了吧。主要是每个节点的权值val这个东西在各种题中所表示的意思不同,按题意理解val的意思就好了。kmp的题也是给个标准的字符串,先套模板再说,然后就是next数组的理解与所输入的字符到是从哪里开始的。数据结构里好多输入很坑的,刚开始做题很多输入都不会。
2018-01-26 22:30:10
122
原创 1月25日
今天主要是做题,做的是并查集的题,主要是更改模板,与题目进行适配。刚开始做的题就给了一个下马威,HDU 1198 Farm Irrigation,这道题是一个二维的,但我不是很会用二维的并查集,于是吧二维的缩成了一维,然后就很简单了,先左右进行,然后上下,这样找完求联通分量就行了。然后再是小希的迷宫这道题,与c题d题有异曲同工之妙,这个要改的是刚开始输入的时候要记录输入,因为后面要用输入来判断入度
2018-01-25 21:52:12
122
原创 1月24日集训
今天主要是看的是KMP,主要研究kmp模板,并没有看很多题,kmp很难理解,尤其是next数组的部分,kmp主要解决的是字符串匹配的问题,不能用暴力匹配,而是进行优化,不要一个一个的查找,而是将字符移动很多位,减少时间,位移的位数就与next数组有关,next数组代表当前字符之前的字符串中,有多大长度的相同前缀后缀。例如如果next [j] = k,代表j 之前的字符串中有最大长度为k 的相同前缀
2018-01-24 22:16:57
157
原创 1月23日
今天主要内容是看字典树的博客,首先钻研了一下字典树的模板,弄懂了用数组构建字典树的规则,用链表的方法还没弄懂。字典树主要解决的问题是给出n个字符串,在让你从n个字符串了找到以另一个字符串为开头的字符。主要的变形是在构建树的时候,每个字符完结的权值的含义,或者增加一些与全职并列的一些值,进行运算。另外还学了一下如何分割字符串,strncpy。还有这里有很多比较坑爹的输出去,比如说测试数据没有终止字符
2018-01-23 21:27:08
114
原创 1月22日
今天主要研究并查集,并查集的基本应用基本上是看完了,主要研究了这几道题:ZOJ 3261 Connections in GalaxyWar 题意:有n个点和m条边,每个点带有一个权值p[i]。现在给出Q条命令,要你输出对应的答案。命令格式如下:query u :该命令需要输出当前与u点相连的点编号x,x要满足p[x]是所有与u相连的点中最大的 且 p[x]>p[u]。如果有多个满足条件的x存在
2018-01-22 21:37:09
153
原创 1月20日训练
今天继续看并查集的博客与区间dp的课件,并查集主要是这几道题不止是用模板,UVA 1160 X-Plosives,题意:现在手上有一些化合物,每个化合物都不相同且由两个不同整数构成,当你手上存在这种情况时:手上有至少N(N>2)个化合物且其中有N个化合物正好包含N个不同的整数(即这N个整数每个出现了2次)。那么此时化合物不稳定。给出所有化合物给你的顺序,你要保证不会出现化合物不稳定的情况,输出你需
2018-01-20 21:30:21
125
原创 1月19日训练
今天主要是看区间dp和并查集,晚上打了一场比赛。区间dp与并查集各看了一部分,首先是区间dp,对于每一段区间,他们的最优解都是由组成他的最小区间决定的,要将区间不断切割直到剩一个元素为止,筛选组合,求出最优值。设dp【i】【j】为【i,j】区间的最优值,最小区间为dp【i】【i】=0,每次将区间分成两段,进行dp,需要注意的是区间的长度和dp的顺序。poj 3280 Cheapest Palind
2018-01-19 21:56:57
250
原创 12月24日
经过考试的波折,我又坚强的回来了,这两天A了几道题,第一道是POJ 3071 Football,这道题题意是2^n个队进行足球赛,每个队打败另外一个队都有一个概率。 问最后胜利的概率最大的是哪只球队。各队按照顺序进行比赛。这道题困扰了我很久,因为没注意到按顺序进行比赛,后来看到这一句话就明白了,使用dp[i][j]表示在第i场比赛中j胜出的概率,用a[i][j]存储初始数据,再套用公式dp[i][
2017-12-24 23:17:53
125
原创 12月17号
这三天继续研究概率dp的题,首先做的是Hdu 4035 Maze这道题,题意是在一个树形迷宫中,以房间为节点。有n间房间,每间房间存在陷阱的概率为ki,存在出口的概率为ei,如果这两种情况都不存在(概率为pi),那么只能做出选择走向下一个房间也可能会走向上一个房间。根节点为1,当遇到陷阱时必须返回到根节点1处重新开始,当遇到出口时,走出迷宫。问从开始到走出迷宫所做出选择次数的期望值。首先定义状
2017-12-17 21:00:12
140
原创 12月14日
这几天继续研究概率dp,先做的是Collecting Bugs,这道题一道入门题,题意是一个软件有s个子系统,会产生n种bug,一天发现一个bug,这个bug属于一个子系统,属于一个分类 每个bug属于某个子系统的概率是1/s,属于某种分类的概率是1/n 问发现n种bug,每个子系统都发现bug的天数的期望。用dp[i][j]表示已经找到了i中bug,j个系统的bug,达到目标天数的期
2017-12-14 21:13:36
146
原创 12月10号
这几天主要是研究博客看概率DP,首先要明白的一点是数学期望是试验中每次可能结果的概率乘以其结果的总和。概率dp主要解决的是关于概率问题和期望问题的求解。其实主要是概率方面的内容,难点也是是转移方程的构建。 然后一般地,大佬经验是求概率是正推、求期望是逆推。研读了几篇大佬推荐的论文,看了几道题,主要研究这位大佬的博客http://www.cnblogs.com/kuangbin/archive/20
2017-12-10 23:23:27
128
原创 12月7号
这几主要是做状压dp的题,首先是Long Dominoes,题意是给出1*3的小矩形,求覆盖m*n的矩阵的最多的不同的方法数。每个格子有三种状态0,1,2,横放或者竖放的第三个格子对下层没有影响,1----竖放的中间那个格子 对下一层有影响,2----竖放的第一个格子,对下两层有影响。用dp[i][j]表示到第i层状态为j的方法数。然后是pieces这道题,题意是给一个字符串,长度<=16,每次去
2017-12-08 00:07:16
237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人