总结:训练日记
总结:训练日记
LSD20164388
如果你过几天就忘了,那么你并没有真正的掌握。
展开
-
2020年6月24日训练总结(codeforces辛路历程)
5月底研究生复试完以后,终于可以专心备战ACM了。这一个月,也确实让我有了不小的收获。1、绝大部分题目的知识点还是常用的那些,只是因为思维能力没跟上,才没做出来。所以多做一些高难度(特别是考思维能力)的题目,是可以收获很多东西的,这些题目要细品,仔细思考每一步是如何想到的,是否可以用在其他的地方。2、不要把问题想太复杂了,题目往往并没有我们想象的那么难(当然一些毒瘤题除外)。题目中给的每个条件都暗藏玄机,其中某个数据的范围可能就是你解题的突破口。3、对于一些你不会但是很多人过(并且通过率比较高)原创 2020-06-24 13:16:29 · 1165 阅读 · 4 评论 -
2020年4月26日训练日记
01bfs可以O(V+E)求解边权全为1的图上最短路。而当边权只有0或1时,使用其它最短路算法是有些浪费的,此时可以使用bfs的变种:0-1 bfs来快速求解,复杂度仍为O(V+E).01bfs维护一个双端队列,当边权为0时,使用push_front,当边权为1时,使用push_back.资料摘自:https://blog.csdn.net/m0_37809890/article/de...原创 2020-04-26 17:54:54 · 239 阅读 · 0 评论 -
2017年8月7日训练日记
今天训练的主要目的是掌握最小生成树的两种算法和拓扑排序,掌握基本思想、原理和框架,并运用解决本次练习中最后剩下的三道题(卡车历史(最小生成树)、博格迷宫(bfs+最小生成树)、字母排序(拓扑排序))。 很多题目都是比较基础的。我反复研读了课件并尝试自己写出基本框架的代码,并在此基础上修改以A掉两道水题。但是最后一道拓扑排序,我还是没有深入透彻的去理解它。我会继续研究它并A掉它,原创 2017-08-07 19:59:57 · 305 阅读 · 0 评论 -
2017年8月1日训练日记
今天的训练主要目的是A几道难度稍微大一点的搜索的水题。在昨天A掉很简单的一些基础的广搜和深搜题目后,我已经牢记了广搜和深搜的原理和核心,使我今天做的三道题均在读题时就已经看出来了用广搜(最优问题)还是深搜(一搜到底)。广搜解决了倒水的pots问题和简单的摞不同颜色的木板问题,深搜解决了涂色问题(听同学说也可以用并查集做)。倒水的pots问题是在广搜的基础上记录它的路径(这一点耗费了我做这道题的原创 2017-08-01 20:55:58 · 417 阅读 · 0 评论 -
2017年8月8日训练日记
今天训练的主要目的是复习本周做的搜索题(bfs、dfs)、图论题及相关的知识的基本原理、核心和基本框架。再看一遍图论的课件。图论涉及的主要算法就是求最小路径、负权回路的四种算法(floyed、Dijk、Bellford、SPFA)、求最小生成树的两种算法(prim算法和利用并查集的KRUSKAl算法)和拓扑排序算法。 今天上午主要是复习,看做过的题目和AC代码,看课件。下午主要是做原创 2017-08-08 19:28:42 · 355 阅读 · 0 评论 -
2017年8月16日训练日记
今天训练的主要目的是看树状数组的课件、知识以及博客。今天对树状数组的理解也算是有了一个巨大的提升(看来先认真看资料、弄懂原理和核心以及理解码比直接做题有效的多得多的多)。一方面我终于明白了它存数的巧妙存法,也弄明白了它的基本原理、核心(i&(-i))另一方面我看了饶齐的博客有关树状数组的几个例题,并完全弄明白了四个相关的例题(敌兵布阵、比赛种数、牛的排列和点的价值),同时看了求超大数的逆序数的离散原创 2017-08-16 21:27:19 · 381 阅读 · 0 评论 -
2017年8月9日训练日记
今天训练的主要目的是看位运算(比较简单,应该是为后面的知识做准备的)、单调队列的课件,熟悉基本思路、原理和框架。复习上学期的二分三分算法,重新看了课件,回顾其核心(二分)、题目的特点(函数最大值、最大值的最小值、最小值的最大值)以及几个基本题目(分蛋糕、切饼、求函数最大值)、基本原理(l、r、mid)和基本框架。 今天看了位运算后才忽然发现上一次的练习赛中用到了这一个知识点(原创 2017-08-09 20:15:38 · 394 阅读 · 0 评论 -
2017年8月2日训练日记
今天训练的主要目的是做完剩下的几道比较麻烦的搜索题。其中冰壶、数独和网络破坏者是dfs,糖果玉米孩子是bfs(虽然没有A掉,但是正在寻找原因,而且绝对是bfs)。这些题目都不是前两天的单纯的套搜索的模板,均是在搜索的基础框架上加一些其他的条件以及其他的变化来求得结果。在经过前两天的水题训练后,我已经能非常熟练地掌握广搜和深搜的框架并能够灵活运用,解决一些更难的问题。 今天的训练还是原创 2017-08-02 21:24:05 · 457 阅读 · 0 评论 -
2017年8月3日训练日记
今天训练的主要目的是A掉搜索练习中糖果玉米孩子,看一些图论的相关知识。糖果玉米孩子中要分三种路线(靠左走、靠右走、最短步数),求最短步数用bfs很容易就能解决,但是一直靠左走和靠右走就比较麻烦,因为走每一步,它的方向都有可能改变,下一步方向的优先级也会改变。我用了3种办法,全是MLE,无奈之下只好参考了小伙伴的代码。思路没错,可能还是设计算法能力有待提高吧。。。 由于下午有训练,上原创 2017-08-03 18:18:56 · 312 阅读 · 0 评论 -
2017年8月10日训练日记
今天训练的主要目的是复习二分三分算法的相关知识,并A出几道水题。同时通过做练习赛锻炼自己,也是测试一下自己现在的水平(结果发现现在的我依然很菜)。重新看了课件,发现有的地方自己已经快忘了(可能是长时间不做忘了,也有可能当时就不会。。。)。同时继续看单调队列的课件,清楚基本思路原理和框架以及几道基础题目的特点和代码实现。 今天做了十几道题。。相对于前几天算是比较多的,不过都是一些比较原创 2017-08-10 20:47:24 · 312 阅读 · 0 评论 -
2017年8月17日训练日记
今天训练的主要目的是继续看饶齐博客中有关树状数组的题目,继续加深对树状数组的思路、原理、核心代码的理解。并且初步扩展求逆序数的一类问题,自己在看完题目并理解思想后自己独立写一遍代码,将错的地方加注释以提醒自己。通过看树状数组的题目加强对相关问题的理解,并争取遇到相关问题能自己独立快速地写出AC代码。还有准备下午的团队赛。在下午的比赛中暴露出了以下问题:1、英语不好,迟迟读不懂题。仅仅靠样例猜题原创 2017-08-17 18:59:52 · 279 阅读 · 0 评论 -
2017年8月11日训练日记
今天训练的主要目的是复习二分三分算法的相关知识,熟悉并掌握单调队列的算法思想原理以及代码实现。但是在单调队列的使用上还不够熟练,不理解不同的题目如何初始化,做每道单调队列的题目都要先看一遍课件。至于二分算是比较熟悉了,但是遇到题目还是很难快速想到如何分,该注意哪些问题。 今天的做题还算顺利,不过大多参考了课件,还有的实在找不出错参考了题解。。。结果发现都是细节上的问题,比如忘记原创 2017-08-11 22:09:43 · 333 阅读 · 0 评论 -
2017年8月4日训练日记
今天训练的主要目的是熟悉图论的几种算法和基本思想。并做了几道最短路径问题,熟悉了Dijk算法和弗洛伊德算法、ford算法和spfa算法和最小生成树。但还是不能熟练写出基本代码,以后还要继续加强巩固。 在A代码的过程中,我逐渐的发现了自己的一个严重的的问题:解题方法通常比较暴力。不能在基本框架的基础上优化改进,而是尽可能的枚举各种情况。但是这样在做一些复杂的问题时就非常容易WR。看来原创 2017-08-04 21:19:43 · 387 阅读 · 0 评论 -
2017年8月18日训练日记
今天训练的主要目的是看饶齐的博客中有关树状数组的部分。很遗憾没有完成目标,只看了一部分题目及其代码并尝试自己看题目并写出代码,但是没有对的。。。多是错在一些细节的地方,因为有细节的地方不理解。(比如这里加一,那里不加一)但是主要思想原理以及基本代码已经掌握,遇到比较简单的、基础的题应该是还能做出来的。。。不过通过这两天的看资料,我知道了与逆序数有关的问题应该基本都能用树状数组解决,还有基本的三种基原创 2017-08-18 22:30:28 · 311 阅读 · 0 评论 -
2017年8月12日训练日记
今天训练的主要目的是复习二分三分的相关知识和单调队列的相关知识。但是仍然对单调队列还不熟悉。还是不能够熟练掌握运用。又看了课件,发现有的地方还是不理解。看了单调队列的一些基础题目有的还是不能完全理解。 二分基本可以掌握,遇到水题能快速1A,但是遇到难题光是想到二分都有些困难,更不用说理出思路并写出正确的代码。至于单调队列的题目也是,简单的还行,稍微难一些就要参考课件甚至题解。。。而原创 2017-08-12 18:45:28 · 327 阅读 · 0 评论 -
2017年8月19日训练日记
今天的训练的主要目的是看饶齐博客中树状数组有关单点(区间)更新,单点(区间)查询的几道例题。由于准备下午的比赛,并没有看多少东西(虽然比赛中也没出多少题)。。。虽然明白了它的基本原理和思路以及基本框架,但还是有很多树状数组的有关知识不了解,有很多细节还不理解,对于练习,我或许还要晚几天才能开始做了。。。 今天下午的比赛,可以说是见识到了各高校的实力。。。(清华的dalao直接A原创 2017-08-19 22:28:19 · 263 阅读 · 0 评论 -
2017年8月5日训练日记
今天训练的主要目的是熟练掌握图论内容中求最短路径的四种算法(Floyed算法、Dijk算法、Bell-ford算法和SPFA算法)。弗洛伊德算法时间复杂度最高(n3),但是能解决无边权或负边权问题。Dijk算法时间复杂度最低(n2),但无法解决负权问题。Bell-ford算法(NE),能解决负边权最短路径,但无法解决负权回路问题。而SPFA算法(kE)就可以解决负权回路问题。四种方法都可以输出最短原创 2017-08-05 20:05:00 · 339 阅读 · 0 评论 -
2017年8月14日训练日记
今天训练的主要目的是继续复习二分三分算法的相关知识,看单调队列的例题,同时看了一些博客、题解,发现单调队列可以有好几种写法,但是本质、核心都是一样的,那就是“单调”。同时队头的指针非常重要,要准确的判断出队列是否为空,这样初始化就要注意。可以让第一个元素为-1。 今天做完了剩下的两个单调队列的题目。读题是那么的重要。读不懂题意,再简单的题目也不会做。就像剩下的两个题,不查题解连题意都原创 2017-08-14 18:52:43 · 296 阅读 · 0 评论 -
2017年8月21日训练日记
今天训练的主要目的是继续看树状数组的有关知识,并尝试做一些简单的题目。由于没看完所有知识点,有很多题目还不会。用了一上午的时间加下午的两个小时看了饶齐博客里有关kmp的基础知识,明白了它的基本思想和原理以及基本模板的代码。知道了原来解决字符串的前缀后缀和相同的问题还有这么一种巧妙的算法。在看了类似的题目之后(比赛中1004,HDU6513),理解了题解的代码并自己写了一份,成功ac。还想补第七题(原创 2017-08-21 21:11:32 · 344 阅读 · 0 评论 -
2017年9月1日-2017年9月3日训练总结
在忙碌的生活和繁重的功课中,开始了线段树的学习。。。线段树的空间复杂度是4*n,时间复杂度是log2n,和树状数组一样可以解决三类问题(单点更新,区间查询,区间更新单点查询,区间更新区间查询),但它是一颗二叉树。树上每一个节点都是一个结构体,里面包括区间左右端点和最大值、总和等信息。也可以用两个数组,一个存原数组的信息,另一个求和。求父节点和子节点可以利用位运算(i>1)比较省时间。主要是树的原创 2017-09-03 21:41:20 · 286 阅读 · 0 评论 -
2017年8月22日训练日记
今天训练的主要目的是看二维树状数组的相关知识,做几道树状数组的题目。但是只明白基础的原理、思想和基本代码是远远不够的。还需要做很多的题目来加强和提高。题目也没我想的那么简单,我本来准备今天想做的3道题只A了一道,其他两道一个是求第K大数,一个是超大数求和。求第K大数我想用优先队列来着,但是WR。超大数求和听同伴说可以用树状数组做,但是我还没想到具体怎么求和。明天一定要解决。原创 2017-08-22 21:00:09 · 348 阅读 · 0 评论 -
2017年8月15日训练日记
今天训练的主要目的是看树状数组的课件和例题以及基本代码,了解它的基本原理、核心思想以及基本代码实现。了解了它的数组计数方式,并且看了三类问题(变一个数求区间和、变区间数求一个数、变区间数求区间和)和它的代码。但是仍然还有很对地方不太理解,未运用 到解决问题中,还不能独立解决此类问题。 在下午的训练赛中,题目基本都读懂了,而且也知道用什么知识去做,但是由于细节问题,A和E题迟迟未原创 2017-08-15 21:22:59 · 305 阅读 · 0 评论 -
2017年7月31日-2017年8月25日训练总结
前言这次实践的主要目的是学习c++中的一些算法和知识,时间是2017年7月31日到2017年8月25日。地点是山东农业大学北校区14号楼五楼机房。现将此次实践学到的有关知识以及心得体会报告于下。 1、 动态规划(dp)动态规划(简称dp)是c++算法中比较重要的一个内容。核心是状态转移方程。就是一类问题的求解过程分为若干阶段,每一阶段都要做出决策并影响到下一阶段的决策。思想原创 2017-08-26 00:41:43 · 422 阅读 · 0 评论 -
2017年8月23日训练日记
今天训练的主要目的是做几道树状数组相关的练习题。巩固树状数组的基本原理、概念和基本框架,牢记知识点。按照老师的说法去做(先考虑是否用其他的方法做,再考虑能否用树状数组优化)。掌握了一维树状数组和二维树状数组的基本用法并解决了基础题目。今天A的题目基本上都是先考虑用其他的方法解得。(第K大数没想到怎么用树状数组解,用优先队列简单暴力AC。。。)牛的排列问题是用暴力枚举加树状数组优化,果然可以。原创 2017-08-23 22:32:50 · 266 阅读 · 0 评论 -
2017年9月14日训练总结
这次的训练日记是9月11日到9月14日。 总体来说屁事都没干,每天瞎忙活。 四门数学课加大物上的比较累,有时间就光想着睡觉,虽然每周都会抽出时间去训练室看资料写代码,但是效率不高,感觉精神不足,再加上个人的问题(与同学发生了一点小冲突)变得更加烦躁,无法静下心来学习,以至于浪费了太多的时间。下一步我将根据自身现实情况制定一个时间表,不管怎么样都不能让自己的生活过于混原创 2017-09-14 21:41:30 · 265 阅读 · 0 评论 -
2017年9月7日训练总结
这一次训练总结是从9月3号到9月7号。主要目的是看线段树的资料,在弄懂它的基本原理和思想之后,看一些经典的题目以及它们的代码,读懂并全部理解。又学会了一种新的判断两个字符串相等的方法,就是if(strcmp(temp,"End")==0) ,即如果两个字符串相等,那么strcmp(temp,“End”)就等于0。有一种定义大数的方法是#define INF (1原创 2017-09-07 21:34:50 · 262 阅读 · 0 评论 -
2017年9月24日训练总结
这次总结是9月22日到9月24日。总体来说并不太好。这三天本来是要把hash看完,但是我太天真了,到现在只会一个简单hash的模板,稍微复杂一点就不会。字符串hash更别说。。。已经放弃,不能在这里浪费太多时间了。周六北京赛区的比赛,状态不是很好。个人一道题没做出来,小伙伴A了两道题。所有题目题意都能读懂,但是很显然都不会。最奇怪的是清华的dalao两个小时AK,然后再往下,第一页结束就是4道原创 2017-09-24 20:11:18 · 428 阅读 · 0 评论 -
2017年9月17日训练总结
这次总结是9月15日到9月17日。总体来说线段树进展缓慢,参加了两场比赛,也有了新的收获(虽然两场比赛队友都没有到齐)。一场是西安赛区的,题目贼难,最后一小时才出了最简单的一道题。。。就是s(x)等于x各位上的数字之和,给你一个x,求k,使s(k*x)%233==0。x的范围是1到1000000。刚开始找了半天规律发现并没有用,最后发现答案可以是一个常数,即1000000输出233遍。。。原创 2017-09-17 18:57:53 · 298 阅读 · 0 评论 -
2017年8月31日训练总结
从8月27日开始,由于开学各种忙活,也少有时间训练了。今天趁着下午第一节空课,到训练室参加了杭电的广西省省赛网络赛,也是练练手,因为这几天一直没碰代码。。。 由于有一个小伙伴被叫去开会,本来准备三人组队的比赛也变成了两个人。刚开始做的时候看到有人几秒钟就把题AC了。有点懵逼,可能他们之前做过广西省的省赛吧。因为手有点生,一开始有很多细节想不出来,小伙伴淡定的睡了一会儿之后,起原创 2017-08-31 20:12:20 · 303 阅读 · 0 评论 -
2017年9月10日训练总结
这一次训练总结是9月8日到9月10日。这段时间的主要目的是参加网络赛锻炼自己,同时看线段树的相关知识。不过知识还是没看多少,大部分时间还是用在了作业上。。。那么就说一下周六参加的比赛吧。周六下午的比赛是乌鲁木齐的一场网络赛,题目对于dalao来说好像非常简单,有34个队AK了。但是对于我们来说题目依然挺难,以至于只出了4道题。下面我来说明一下我参与的三道“水题”...c题(送分题):一原创 2017-09-10 21:40:57 · 306 阅读 · 0 评论 -
2017年9月28日训练总结
这一次训练是9月25日到9月28日。这一段时间专攻树状数组专题,并取得了一些收获。树状数组之前总结过,就是经典三种查询的题型和求逆序数问题。现在又发现一些区间条件更新条件查询也能做。树状数组可以开多维来解决问题,也可以用不常规的写法求一些特殊条件的问题(例如城市和农村建路、南宁网络赛的最长子序列权值和)都可以用树状数组解决。也发现了它可以求最长上升序列。这三天看了很多博客上的资料,主要是看原创 2017-09-28 23:33:35 · 311 阅读 · 0 评论 -
2017年10月8日训练总结
这次训练总结是国庆八天。对树状数组在一些的难一点的题目中的运用又有了新的认识和感悟。首先是对于树状数组的离线处理有了一定的了解,并在求区间不重复数字个数和出现2次数字个数能够快速正确的写出AC代码。另一方面看了求区间GCD个数的博客,学会了用vector >存gcd和它出现的位置,再离线处理,将询问排序。但是在做求区间最大GCD的时候,用了一个技巧,就是答案一定是某个数的因子。因此先把所有原创 2017-10-07 19:04:31 · 251 阅读 · 0 评论 -
2017年9月21日训练总结
这次训练总结写的是9月18日到9月21日。总体来说线段树没有什么进展,于是就直接从头开始看数据结构了。由于这几天充分的将零碎的时间利用了起来,加上刚开始看的STL部分比较简单,也学到了好多东西,也发现好多东西老师上课的时候都讲过。下面总结一下这这四天的成果:1、栈和队列。早就讲过概念,但是由于缺乏相关练习题进行训练总结,未熟练应用。这几天才突然发现有很重要的作用。栈就是解决一些先进后出原创 2017-09-21 22:03:17 · 279 阅读 · 0 评论 -
2017年10月1日训练总结
这次训练日记是9月29日到10月1日。训练是我每天都要做的事,不管是不是假期。这三天还是在研究树状数组几道比较难的题目,学会了一些离线处理树状数组的思想,本来打算回到家就把树状数组专题中的求最大公约数那一道做了,不料杭电挂了,转战vj,做国庆节专题的题目。简单看了一下国庆专题的题目,应该都是与线段树和树状数组有关的题目。于是趁今晚有时间,赶紧上来A几道水题。。。(可惜没抢到一血)第一个练习原创 2017-10-01 21:58:13 · 395 阅读 · 0 评论 -
2017年10月29日训练总结
这次训练总结是10月27号到10月29号。 总体来说,看了三个人的博客,两个没看懂,看到第三个时恍然大悟,瞬间理解了数位DP的递归写法,细细想想觉得很简单。。。主要就是注意dfs中的参数有几个,是什么,状态与输入输出是否有关,是否受前缀0的影响,怎样确定进入下一位的状态。理解了模板之后,好几道题就都变成非常水的水题了。。。比如不要62,把4和62的情况特判,多开一维数组存上一位是否原创 2017-10-29 21:34:59 · 252 阅读 · 0 评论 -
2017年10月12日训练总结
这次训练总结是10月9日到10月2日。在上周AK树状数组专题以后,开始了线段树题目的AC之旅。又看了一遍线段树的ppt和课件,还看了饶齐博客上有关线段树的部分(只看了一半),学会了线段树的单点更新区间查询、区间set整体查询、区间add区间求和。能够独立解决涂色、贴海报等一些简单的问题,但是,稍微难一点的题目就要参考相关的题解、博客,然后完全理解并独立写出代码。我更加注重了思考的重要性:拿原创 2017-10-12 19:55:08 · 289 阅读 · 0 评论 -
CCPC 2017 哈尔滨赛区现场赛 比赛总结
非常感谢老师给我们队的这个机会,让我们去参加这场比赛。两个队友以前都是参加过省赛,但是我这次是第一次参加现场赛,难免有点紧张。请假以及坐车到哈尔滨一路都还比较顺利,到那里之后晚上在哈商大宾馆住,环境还算不错,第二天上午(热身赛在下午)去了松花江,看了防洪纪念塔和圣索尼亚大教堂,哈尔滨的哥特式建筑风格使建筑物都非常好看。当然其中也有中国古典式建筑,给人的感觉就是这是一座繁华的大城市,而且哈尔滨也没有原创 2017-10-24 07:52:40 · 2643 阅读 · 2 评论 -
2017年11月9日训练总结
这次训练日记是11月6日到11月9号。总体来说,数位DP专题清掉了所有的水题。。。剩下的题暂时还没想出怎么做,而且我也只会递归这一种写法。(状态转移的写法只会简单的)。cf打了一场比赛(惨,2题),昨晚打了一场比赛(较惨,3题)。看了字典树的模板,但是还未应用去A题。。。看样子应该不太难。这几天状态不太好,一是因为课程的增多,又面临部分课程将要结课,作业指数增长,占用了大部分课余时间,另一方面原创 2017-11-09 19:49:59 · 285 阅读 · 0 评论 -
2017年10月15日训练总结
这次训练日记是10月13日到10月15日。总体来说,掌握了KMP模板并能够熟练运用。刚刚打了一场CF的天梯赛,感觉挺好玩,但是第二题被锁了,最后只A了一道题。。。比赛一结束就开始补题,前三道题都很快A掉。。。怀疑人生。下面先写一下这三道题的题解吧。。。A:求最小的数,它的每一位数字出现在给定的两个序列里。思路:先判断有没有相同的数,有的话找最小的。。。直接输出即可,没有相同数就把两个数原创 2017-10-15 20:08:55 · 275 阅读 · 0 评论 -
2017年11月2日训练总结
这次训练总结是10月29日到11月2日。总体来说,做了数位DP一些稍微难一些的题目,也遇到了不。少。坑。(不到5道题,WR超过60发是什么感觉。。。)做了秦皇岛比赛的部分题目。下面很有必要写几道题的题解来提醒我注意细节的重要性。1、HDU 3271SNIBBTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768原创 2017-11-02 17:02:05 · 325 阅读 · 0 评论