ACM
Jinze_L
这个作者很懒,什么都没留下…
展开
-
周中训练笔记17
树形DP专题时间过半了,自己还是有点似懂非懂,感觉还没入门啊。。。 下面说一说树形DP基本思想吧: 树形dp,顾名思义就是在对树用DP,不同于以往的线性dp,还需要遍历树,做了几道树形dp的题目,发现都需要用到vector来记录每个节点的子节点(因为每个节点的子节点不定,所以需要vector)。 遍历方向有两个,一是从父亲节点到根节点,另一种是从根节点到父亲节原创 2017-11-19 21:32:28 · 123 阅读 · 0 评论 -
并查集&字典树&KMP练习_2
今天主要做了并查集的题目,一如既往的顺畅,主要是题目都看过而且可以用模版。 但是今晚做了牛客网的练习赛,做了一道字典树的题目,正是这几天专攻的算法,但是最后没能过,我想了一下原因:字典树这个算法我能写出来,但是具体到主函数里面调用却不知道怎么用字典树这个算法,造成这道题的失败,可能现在还是停留在理解原理的层面上,只会套用模版,对这个算法的综合运用还很不熟悉。这几天要多看算法的综合原创 2018-01-26 21:27:52 · 108 阅读 · 0 评论 -
AC自动机模版代码解析
今天还是看AC自动机,终于把模版代码看懂啦,总结一下: AC自动机,应用于模式匹配问题,尤其是长文本多模版问题较于KMP算法和字典树更具有优势。方法是把所有模版建成一个大的状态转移图,而不是每个模版各建一个图。KMP算法的状态转移图是线性的字符串+失配边组成的,而AC自动机是字典树+失配边组成的。字典树在判断一个单词是否属于字典时很有优势,但是字典树在判断一个文本包含多少个字典中的单词时就原创 2018-01-30 21:19:10 · 183 阅读 · 0 评论 -
后缀数组应用
今天看了后缀数组的应用,整理一下:例 1:最长公共前缀给定一个字符串,询问某两个后缀的最长公共前缀。算法分析:按照上面所说的做法,求两个后缀的最长公共前缀可以转化为求某个区间上的最小值。对于这个 RMQ 问题(如果对 RMQ 问题不熟悉,请阅读其他相关资料),可以用 O(nlogn)的时间先预处理,以后每次回答询问的时间为 O(1)。所以对于本问题,预处理时间为 O(nlogn),原创 2018-02-03 20:50:16 · 393 阅读 · 0 评论 -
总结&java大数
今天总结了一下并查集&字典树&KMP,做了总结ppt,感觉对这些算法熟悉了不少,但是综合运用还是有所欠缺。 今晚做了几道java大数的问题,感觉不是很难,只是作为一种工具来处理题目中的超大数。 明天再看看图论的知识和巩固一下那三个算法。原创 2018-01-27 21:36:56 · 164 阅读 · 0 评论 -
拓扑排序&关键路径&数位dp
今上午看了拓扑排序和关键路径,了解了基本原理,至于代码还只看了模版,题目还没有多看。 今下午和晚上,复习了数位DP,有了更加深入的认识,基础题型是计算一个区间(a,b)符合某个条件的数的个数。一般数位dp是一种暴力枚举的方法。它就是在数位上一位一位的枚举,使得这种枚举方式符合dp的定义,并且使用记忆化搜索,就会节省枚举的时间。换了一个模版,实用性更大,但是不怎么好理解,暂时可以理解个原创 2018-01-28 21:47:37 · 147 阅读 · 0 评论 -
AC自动机专题训练
今天在做AC自动机的题目,虽然前几天看了AC自动机的一些知识,看懂了一些题目,觉得掌握了一些方法和模版,但是真正做的时候,还是很不熟悉,尤其是AC自动机跟DP结合,感觉思路很难想到,代码实现的也很巧妙,自己还是没能完全掌握AC自动机这个知识点,明天再接着做吧。原创 2018-02-05 21:29:17 · 140 阅读 · 0 评论 -
AC自动机
今天看了AC自动机,原理大致理解,但是模版代码有些地方不了解,大致可以解决这类问题:给你一个字典(包含n个不重复的单词),然后给你一串连续的字符串文本(长为len),问你该文本里面的哪些位置正好出现了字典中的某一个或某几个单词?输出这些位置以及出现的单词。解决的是长文本的多模板匹配问题。它是KMP算法的推广,KMP算法专门解决长文本的单模板匹配问题,字典树专门解决单个单词(短文本)多模板匹配问原创 2018-01-29 23:22:25 · 226 阅读 · 0 评论 -
后缀数组专项训练
昨天把AC自动机的简单题都做得差不多了,今天上午主要做了AC自动机+DP,做得非常吃力,实在做不下去了。所以下午和晚上把后缀数组专题里面挑了几道简单的的模版题做了,因为是模版题,直接把模版套上再加以简单运用就A了,感觉还不错,明天再在这两个专题之间游走吧。。。原创 2018-02-06 21:19:02 · 126 阅读 · 0 评论 -
AC自动机&后缀数组复习
昨天和今天主要复习了AC自动机和后缀数组,更深一层的理解倒是没有,只是复习回忆以前的只是,感觉还是停留在入门级别,至于消化理解还是有一定差距,感觉这两天来收获不大,果然在家的效率不高,无心学习,明天静下心来好好看看其他内容。。。原创 2018-02-26 21:15:04 · 282 阅读 · 0 评论 -
刷题&比赛&复习
今上午做了两道后缀数组的题目,依然套模版。 今下午打了场比赛,感觉比较简单,大多数是水题。 今晚上看了牛客网的图论的直播,复习了Prim算法,Kruskal算法,了解了匈牙利算法。 总之,今天还挺充实的原创 2018-02-07 21:36:19 · 145 阅读 · 0 评论 -
后缀数组模版代码解析
今天看了后缀数组的模版代码,终于看懂了模版的每个部分所实现的功能,但是具体细节还没完全理解,看来暂时只能套模版了,下面是模版及注释; /*sa[i] : 表示 排在第i位的后缀 起始下标rank[i] : 表示后缀 suffix(i)排在第几RANK表示你排第几 SA表示排第几的是谁 (记住这个就行)height[i] : 表示 sa[i-1] 与 sa[i] 的LC原创 2018-02-02 21:02:18 · 166 阅读 · 0 评论 -
并查集&字典树&KMP练习_1
今天主要做了字典树和KMP算法的练习题,感觉还不错,差不多都是模版题,没有太大的难度,做起来也比较流畅。我觉得是前几天一直在看相关博客,有了一些积累,对算法的原理和模版比较熟悉,所以做这些模版题就比较顺手,我觉得先看博客积累知识,再做题加以巩固,这种学习方法非常好。主要是题目都看过而且不难。。。 虽然题目难度适中,A了9道题,但现在还是有些疲劳,就先写这么多吧。原创 2018-01-25 21:33:30 · 180 阅读 · 0 评论 -
状压DP
这周要考数据库,主要在复习,抽出时间做了几道状压Dp的基础t原创 2017-11-30 23:02:15 · 87 阅读 · 0 评论 -
周中训练笔记21
终于考完数据库了,开始全力以赴的学习状压DP了,但是我发现状压DP主要使用位运算实现,这块有点搞不太懂。原创 2017-12-03 20:47:57 · 127 阅读 · 0 评论 -
周中训练笔记18
这一周还是刷树形DP的题目,虽然还没能理解透,但是这种题目的大体框架以及思路还是了解的,这周专题快完结了,抓紧时间弄懂吧。原创 2017-11-23 22:20:08 · 124 阅读 · 0 评论 -
周中训练笔记19——树形DP总结
树形DP暂时告一段落,今天总结了一下: 首先,树形DP=树+DP,是一种二维的DP题目,也可以结合背包问题,因为子树的数量不确定,所以一般用vector来存储子节点或子树个数。 平时作的动态规划都是线性的或者是建立在图上的,线性的动态规划有二种方向既向前和向后,相应的线性的动态规划有二种方法既顺推与逆推,而树型动态规划是建立在树上的,所以也相应的有二个方向:原创 2017-11-26 20:14:27 · 184 阅读 · 0 评论 -
并查集
今天研究了一天的并查集,感觉不是很难理解,解决的问题特征也很明显:连通问题,集合问题,树的相关问题等,这些问题有一个共同点:开始时让每个元素构成一个单元素的集合,然后按一定次序将同属于一组所在的集合合并,期间要反复查找一个元素在那个集合,看似并不复杂,但数据量极大,对内存和时间要求很高,下面是具体的模版: int findn(int x)//找到每个点的根节点{ if(f原创 2018-01-22 21:01:32 · 111 阅读 · 0 评论 -
字典树&拓扑排序
今天上午和下午主要看了字典树,感觉比并查集难些,但总算大致理解了,在解决需要检测一个单词,前缀或某个部分是否在某串字符中,为提高查找和定位的速度,一般就需要构造字典树来实现,其具有以下特点: 1.根节点不包含字母,除根节点外每一个节点都仅包含一个字符信息,可以是字母,也可以是数字,具体看题目。 2.从根节点到某一节点,路径上经过的字母依次连起来所构成的字母序列,成为该节原创 2018-01-23 22:06:59 · 494 阅读 · 0 评论 -
依然AC自动机
今天还是看AC自动机,难度很大,题目很难懂,看了AC自动机的不同应用,总结一下: 首先是最基本的应用:模式匹配问题,比如统计文本串中包含多少个给定的单词,方法是把需要被匹配的单词依次插入到一个树里,再用AC自动机的方法去匹配文本串。这种问题,只是围绕着文本串与模式串之间的关系出题,还没牵扯到别的知识。 然后是与DP相结合,难度就上来了,今天主要看了概率DP+AC自动机原创 2018-01-31 20:24:00 · 113 阅读 · 0 评论 -
KMP算法
今天学了KMP算法,一开始看代码看不大懂,看了一上午教学视频总算是大致了解了,难度确实并查集和字典树大。 KMP算法主要应用于求出ex[i]数组,ex[i]数组表示主串S中以第i个字符(也即S[i-1]位置)为尾字符的后缀与模式串T的前缀的最长公共部分。 拿一道经典的kmp模版题来介绍模版: POJ 3461 Oulipo(KMP:统计一个串出现的次数)原创 2018-01-24 21:35:51 · 112 阅读 · 0 评论 -
后缀数组
今天看了后缀数组,看到怀疑人生,原理和思想懂了,但是代码就。。。实在看不懂了。看了很多博客,发现其主要内容无非是对倍增算法的运用,原理看了一天终于看懂了,实现的代码今天没看懂,明天再看!很多号称详解后缀数组的博客的内容和思路都来自罗穗骞《后缀数组——处理字符串的有力工具》,连接如下:(https://files.cnblogs.com/files/newpanderking/后缀数组——处理字原创 2018-02-01 21:45:06 · 98 阅读 · 0 评论 -
RMQ&线段树复习
如标题,今天主要复习了RMQ和线段树,整理了一下模版: 首先是RMQ: #include #include #include using namespace std; const int MAXN=50000+100; int dmax[MAXN][20]; int dmin[MAXN][20]; void initmax(int n,原创 2018-02-27 17:17:51 · 162 阅读 · 0 评论 -
训练总结报告
首先先补一道今下午卡了我好长时间的水题: 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)Red Rover One of our older Mars Rovers has nearly completed its tour of duty and is awaiting instructionsfor one last mission to explore the Ma...原创 2018-05-01 21:42:40 · 1150 阅读 · 0 评论 -
省赛练习2——第八届福建省大学生程序设计竞赛 &补题
这场比赛还是比较遗憾的,有两道大数题是我负责用java写的。分别是FZU 2278 YYS 和 FZU 2281Trades ,yys主要是卡在大数类不同类型的运算问题上,以前一直没注意,临近比赛结束才调出来,好险好险;trades是贪心+java大数,思路是没问题的,用c++写可以过样例,但是数字太大就过不了,所以用java写,但怎么改都改不对,java跟c++在数组边界问题上还...原创 2018-04-27 21:27:17 · 269 阅读 · 0 评论 -
省赛练习1——SDKD 2018 Spring Team Contest E&补题
今下午组队打了一场省赛训练赛,感觉没发挥好,最终只A了4题,还有两题当时没能A,赛后补题的时候发现思路都对,只是代码处理有些小问题,当时跟队友怎么改都改不出来,一直是以为思路错了,没想到思路很对就是程序有点小瑕疵。。。 首先是HDU - 6026 Deleting Edges(最短路径) Little Q is crazy about graph theory, and...原创 2018-04-26 21:44:54 · 244 阅读 · 0 评论 -
北京师范大学第十六届程序设计竞赛决赛-重现赛&补题
今天打了北师的校内比赛?官方说是个人赛,我们组队打才过5个。。。北师果然强。 今天他需要补的题很多,主要是: D雷电爆裂之力;F汤圆防漏理论;E可以来拯救吗; 首先是D雷电爆裂之力(比赛的时候没什么思路,就交给队友了,赛后看题解发现真的不难。。。) 链接:https://www.nowcoder.com/acm/contest/117/D来源:牛客网题目描述 听说导体切...原创 2018-04-28 22:03:02 · 329 阅读 · 0 评论 -
ACM中的java应用
1.java中大数类(包含大整数类和大浮点数类)常用函数:函数:add, subtract, divide, mod, compareTo等,其中加减乘除模都要求是BigInteger(BigDecimal)和BigInteger(BigDecimal)之间的运算,所以需要把int(double)类型转换为BigInteger(BigDecimal),用函数BigInteger.valueOf()...原创 2018-05-07 22:10:39 · 185 阅读 · 0 评论 -
集训第八天(2017/8/7):白天刷搜索题+晚上看dijkstra算法
白天就ac了两道题,依然是搜索,原创 2017-08-07 21:21:15 · 419 阅读 · 0 评论 -
集训第十一天(2017/8/10):二分法练习和第四次做比赛
今天是二分法专题第一天,感觉二分法比搜索简单多了,但是精度的控制还是要注意细节,比如说今天我做了一道题,输出结果跟答案老是差0.0001,怎么也检查不出来哪里错了,但答案就是不对,精度改了还是不对... 还有今下午做比赛,第一题用到蔡勒公式???!!这是哪里出来的公式???还有一道深搜题老是做不出来,最后终于改对了。。。今天挺疲惫的(比赛累的)。 贴上我怎么改都wrong an原创 2017-08-10 20:50:30 · 279 阅读 · 0 评论 -
集训第十九天(2017/8/18):依然是树状数组
今天还是树状数组专题,接触树状数组不久,只能说对它神奇的位运算惊叹不已,但是实际运用到题目,只能惊叹好难运用,做不出来。今天看了很多关于求逆序数对的题目,对于大神自然是一类超级水题,但是我也是苦思冥想,为什么可以运用树状数组加速。也许很多新手像我一样,思维限制在了树状数组那些较为复杂的运算中(或许我逻辑能力较差,各位大神勿喷),朦朦胧胧地感觉到是这么算的,但是又没有办法用逻辑想通,在这里,我觉得实原创 2017-08-18 21:17:50 · 166 阅读 · 0 评论 -
集训第十二天(2017/8/11):刷题(二分法)
今天还是刷二分法的题,又做了一道莫名其妙的题,用scanf输入的话能ac,用cin输入就runtime error,我真的不知道这是什么情况??贴上这道题(通过这道题也收获了很多,比如说筛法求素数这道题,也是一道挺好的题),有没有大佬知道怎么解决? Prime GapTime Limit : 10000/5000ms (Java/Other) Memory Limit :原创 2017-08-11 20:51:11 · 311 阅读 · 0 评论 -
集训第五天(2017/8/4):刷搜索题
今天就做了两道题,上午做了一道深搜题,下午做了一道广搜题,晚上又回顾了一下这两道题,虽然今天做的题不多,但是收获还是很大的,尤其是下午做的那道广搜题,让我对广搜有进一步了解。今上午做的那道深搜题感觉有点难,虽然能大体看懂题解但还是不能完全理解,先贴上那道bfs的题吧,我认为这道题很好的体现了广度优先搜索的思想。 Prime PathTime Limit : 2000/1000ms (原创 2017-08-04 21:07:09 · 193 阅读 · 0 评论 -
集训第十三天(2017/8/12)刷二分法的题
今天还是刷二分法的题,有两道题把我弄糊涂了,首先看着两道题: Monthly ExpenseTime Limit : 4000/2000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 120 Accepted Submission(s) : 38Problem原创 2017-08-12 20:43:06 · 179 阅读 · 0 评论 -
集训第二十天(2017/8/19)CCPC打酱油
此刻CCPC还没有结束,而我原创 2017-08-19 16:32:41 · 230 阅读 · 0 评论 -
集训第六天(2017/8/5):接着刷搜索题
今天还跟昨天一样,就做了两道题,而且都是通过题解做出来的,自己还是对搜索没有掌握,仅仅能看懂题解而已,自己独立做还是不行。今下午做了一道题,真是醉了。。。照着题解找错误找了一下午没改出来,然后在晚上终于改出来了。。。还有,今下午学了Floyed算法,原理虽然简单,但真要放在题目里还真的不简单。最后贴上这道有毒的题吧:(但我觉得题解非常巧妙啊~~~,用到四色定理,长见识了)Channel All原创 2017-08-05 20:41:44 · 216 阅读 · 0 评论 -
POJ2559 Largest Rectangle in a Histogram(比动态规划更快的方法——单调队列)
Largest Rectangle in a HistogramTime Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 123 Accepted Submission(s) : 25Problem DescriptionA his原创 2017-08-14 11:26:06 · 288 阅读 · 0 评论 -
poj 3414 Pots(认为是一道很好的bfs题目)
PotsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 7783 Accepted: 3261 Special JudgeDescriptionYou are given two pots, having the volume of A and B liters respectively. The following operat...原创 2017-08-07 12:06:43 · 274 阅读 · 0 评论 -
集训第十五天(2017/8/14):单调队列&单调栈
今天主要练习了单调队列和单调栈的题,尤其是单调队列虽然原理简单,但用代码实现过程却不容易理解,因为它的队首和队尾都可以操作,灵活性很大。 首先来看一下单调队列的原理: •队列中元素之间的关系具有单调性(可以是单调不增加或单调不减小,也就是说可以有重复,每个元素不必严格单调),而且,队首和队尾都可以进行出队操作,只有队尾可以进行入队操作。。 •单调队列的常用操原创 2017-08-14 19:44:10 · 283 阅读 · 0 评论 -
集训第四天(2017/8/3):继续刷hdu搜索题和第二次练习赛
今天还是上午做的hdu的搜索题,下午参加练习赛,就AC了一道题,而且搞得我晚上很浮躁,一道作业题也没能做出来,郁闷Q.Q,就把贴上今上午做的作业题吧: eg1.hdu2717Catch That Cow(bfs #include#include#includeusing namespace std;int step[100001];//记录每一位置所走的步原创 2017-08-03 21:04:07 · 183 阅读 · 0 评论