![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2017暑假集训篇
君诺
这个作者很懒,什么都没留下…
展开
-
2017暑假训练第七天
今天的训练完成了所有的训练题目,主要学习了拓扑排序,位运算以及一些简单的单调队列的知识,自己看一些课件上面的没有注释的代码还是有些费力,尤其是对这些算法只是简单了解的情况下,但经过思考还是有一些自己的收获。 对于拓扑排序,这个算法适用于只知道一些大小关系的情况下排大小的情况,算法有点类似于松弛技术,让“入度”为0的点入栈,出栈时更新其他的点的“入度”(入度就是在排序中的相对位置),再让入度为原创 2017-08-07 19:33:43 · 269 阅读 · 0 评论 -
2017暑假训练第十八天
今天的训练简单的看了一下树状数组的内容,然后打了一场比赛,超出预期的a出来两道题,第三道题是一个很水的题,这个没什么说的,而第五题能出来的原因我认为是不懈的坚持,一开始连题意都看不懂,什么cell,又是either否定词,后来因为第四题迟迟出不来,我们便开始了推理性的试探,假设那个相互联系的系统是一个坐标系(有个坐标的意思),然后either否定句也进行了假设,假设他是可以画在cell的一遍或者对原创 2017-08-19 21:32:08 · 194 阅读 · 0 评论 -
2017暑假集训第六天
今天做了1道搜索题,和4道图论题,最后一道题的找错过程略有不顺,主要是数组开小了,忽略了起始点也是一个搜索点,于是导致一直wr,现在还剩下最后一道题,总的看这所有这六天的复习,感觉自己确实有收获,从一开始,一道很简单的,甚至是做过的题,也能耗费我大量的时间,最终也要wr很多次才能通过,到后来一道很难的题,细心处理后的1a,还是有很大的成就感的,1a出自于对题目的理解,对知识点的熟练,并不是一时之功原创 2017-08-05 20:31:14 · 181 阅读 · 0 评论 -
2017暑假训练第十三天
今天完成了所有的训练题目,最后两个题目都比较的棘手,所以比较浪费时间,第一个题题意极其复杂,但最后让求的东西却并不是多难,就是连续的矩阵求可以围成的最大的矩阵的面积,但理解这个题的题意却用了大量的时间,用了4个集合的形式表述。这个题的解法就是单调栈(到今天我才发现我们学的课件上的那个写法并非单调队列,而是单调栈的数组形式,每次操作的都是队尾的元素)为了避开这种写法下造成的head,real不会取的原创 2017-08-14 17:53:03 · 189 阅读 · 0 评论 -
2017暑假训练第十九天
网站坏了....所以今天决定看看线段树的博客,也是边看边写边理解吧。原创 2017-08-21 09:20:26 · 150 阅读 · 0 评论 -
暑假训练总结
社会实践调查报告 题目:关于暑假ACM训练的实践与总结专业班级:数学与应用数学专业1班姓名:李双智 学号:20164249 2017年8月25日 【摘要】31.树状数组和图论42.二分三分以及单调队列53.树状数组与单调队列54.总结原创 2017-08-25 20:35:33 · 372 阅读 · 1 评论 -
2017暑假训练第二十天
今天早上的训练研究了一下线段树求最大值的算法,建树方法方法大致与模板相同,多了一个有关最大值的内容: tree[id].max=max(tree[2*id].tree[2*id+1]); 意思也很好理解,就是根节点的最大值等于左子区间和右子区间的最大值的较大者,依旧是递归查找类型。 而后a了一道插入元素并查询第k大数的题目,就是一开始建立一个空的树,根据插入的元素与位置的关系向树原创 2017-08-22 17:14:29 · 185 阅读 · 0 评论 -
2017暑假训练第十四天
今天又一次复习了有关树状数组的内容,原创 2017-08-15 19:56:56 · 219 阅读 · 0 评论 -
2017暑假训练第二十一天
今天的训练继续做了有关于树状数组和线段树的题目,这些题难度确实远大于之前做的那些二分和图论的题目。主要是树状数组和线段树是一种类似于可以处理区间问题的工具,这种工具可以大大节省区间运算的时间,但是也需要大量的题目扩展思路。今天做的第一个题是一个用树状数组优化的dp题目,题目很简单,但是想到用树状数组和怎么用树状数组却是十分难的一件事。然后做了一道三维树状数组的区间染色类问题,这个脑洞也相当的大。相原创 2017-08-23 22:00:22 · 163 阅读 · 0 评论 -
2017开学训练第三周周末总结
这周末去看病了,周日下午才赶回来,在路上帮忙看了一下比赛的题目,我们队一共出了三道题,一道很水的签到题目,就是给生肖,判断男女年龄之差,建立映射,按条件查找就行了这个题目。第二个题目是一个模拟题,添加珠子使得消除得分最高,对于玩过类似游戏的我们来说,这个题目并没有花费大量精力。然后就是第三个题目,这个题目是用kmp a的,题目的大意就是看看最长字符串里面是否包含其他的字符串,由于运用不熟练,还是w原创 2017-09-17 18:13:59 · 236 阅读 · 0 评论 -
2017开学训练第一周周末总结
周六在机房做了一下线段树的题目,顺便看了一下线段树的相关知识点,一共做出来两道题。 一道是用线段树求区间最值的模板题目,果然几天不摸代码手就有些生了,这个代码因为几处细节问题弄了好长时间,主要错在几个地方加一忘了还有几个地方错的比较蠢,但最后还是ac了。 第二道是区间更新的题,整体思路还是lazy算法的快速更新,不过和之前的那个不太一样,那个是区间增加一个值,这个是区间改变一个值,敲完原创 2017-09-02 16:59:24 · 322 阅读 · 0 评论 -
2017开学训练第七周周中总结
这周前几天研究了一下线段树里面的线和区间合并的模板,因为队友说想补补ac自动机,这块就先抛给我了,正好我线段树看的比较多,模板摸得也算比较熟。 扫描线求面积是一类典型例题,主要思想就是覆盖思想,以平行于x轴的边作为扫描线,他的左右区间作为他覆盖的区间范围。具体操作就是先给矩形的边标记,下边标记为1,上边标记为-1,然后更新矩形的边所覆盖的位置的值为原值+标记值(如果边的左端点和右端点的跨度值原创 2017-10-12 19:33:00 · 271 阅读 · 0 评论 -
2017暑假训练第十二天
今天的训练主要完成了有关单调队列的两个题,一个是有关于最大的全1矩阵,这个题我一开始的思路是借用了以前所学过的一个有关求最大子矩阵和的dp题目的思路,将二维的矩阵压缩成一维,然后求一维的最大子段和,依照这个思路,我的想法仍然是这样合成,最后逐次对行建立单调队列,依据单调队列的性质求出最大的矩阵所包含的元素的个数。但是由于对题目的理解不够深刻,最后还是tle了,于是参照了题解上,思路类似,但是并不是原创 2017-08-12 16:24:47 · 157 阅读 · 0 评论 -
2017暑假训练第五天
今天的训练成功由题目把四种求最短路径的方法都复习了一遍,也算是路遇难题,各显神通吧。 下面总结一下其中的三种算法(spfa算法是第三种算法的优化,所以只总结第1,2,4这三种算法): 对于Floyed算法: 算法的形式就比较暴力,三重循环过滤中间点对每个a[i][j]的缩短作用,过滤完之后结果就是最短路径,而且可以处理负权,易错点就是第一重循环的作用一定要注意。 算法的代原创 2017-08-04 20:19:07 · 162 阅读 · 0 评论 -
2017暑假集训第二天
今天的集训着实有些郁闷,上午完成了一道简单的搜索水题(Dungeon Master-一个三维的搜索,细节比较多,但着实简单)之后便被卡死在了一个细节更多的题(Children of the Candy Corn)上面,这个题的难点在于控制方向,但之前我对代码中方向的理解不深刻,导致处处受挫,但最终在自己的思维和修改下完成了方向的控制,但细节过多,下午又有比赛,于是放弃了这道题的求解,控制方向的方法原创 2017-08-01 20:20:52 · 339 阅读 · 0 评论 -
2017暑假训练第八天
今天的训练继续昨天的思路继续看的单调队列,通过例题加深了对单调队列的理解。在下午的训练中做出了两道水题,一道是简单的判断题,就是一个等差数列,谁先没糖果输出谁的名字,另外一道题是把一个队列的某一段重新排列,然后判断排列后的原来某个位置的数是否还是它,这个题需要一点脑洞,如果直接sort排序得到的结果一定是tle,所以改为判断他比区间上多少个数大,以得到重排后这个数的位置,第四题是一个广搜题,但一番原创 2017-08-08 19:13:02 · 187 阅读 · 0 评论 -
2017暑假训练第十五天
既然不用做题了,就细细的理解一下知识点,决定学一点写一点,写点有用的东西。 首先是看了一下用树状数组求逆序数,看了好多版本,有直接求算的,有用结构体存取,再排序后计算的,但是总体的思路都是一样的,i-sum(i),用这个数减去之前输入的比他小的数的个数,总的看了一下,认为直接算更加方便而且好理解。 思路就是用树状数组存0或1,每输入一个,更新数组,并求算比他小的数的个数,ans+=i-原创 2017-08-16 09:51:49 · 167 阅读 · 0 评论 -
2017暑假训练第九天
上午刚刚看完了树状数组的知识点,就自己的理解先做一下总结,整理一下学到了什么。 树状数组: 树状数组的作用: 1.使用背景--当要同时存在下述两种操作数次的时候: 1)对第x位置处的数据进行除了删除,乘除,之外的修改(比如增加或减去一个数) 2)求某一位置的前缀和。 处理以上两种情况的时候,使用简单的数组就不在适用了。(简单数组指的是a[]直接存某一位置的数是多原创 2017-08-09 10:01:13 · 140 阅读 · 0 评论 -
2017暑假集训第三天
今天的训练比较顺利,一共做出来五道题,wr了一次,把搜索部分基本结束,基本达到了熟悉复习搜索题目的目的,细节问题得以掌握。而比较惊喜的是昨天的转向题方法十分正确,今天稍加修改,便成功ac,接着又是一个方向的题,也顺利ac了,看来昨天花了一上午的时间研究的方向问题并没有白费,下面总结一下有关方向的题的要领: 首先方向题一般是指在二维数组中的方向,定位到方向上分为上下左右四个方向,由于之前做的有原创 2017-08-02 19:29:15 · 268 阅读 · 0 评论 -
2017暑假训练第十六天
今天继续理解树状数组的内容,也是边看边写吧。 首先是这道题: POJ 3378 Crazy Thairs(数据集中+DP+树状数组+高精度)http://poj.org/problem?id=3378题意: 有一个N个数组成的数列,问你该数列中有多少上升5元序列,即满足如下要求的序列(不要求连续取5个A): 1 ≤ i j原创 2017-08-17 09:48:59 · 175 阅读 · 0 评论 -
2017暑假训练第四天
今天上午复习了一下图论中最小生成树和并查集有关的题目,做了练习中两个关于最小生成树的题目,两个题目都是标准的模板题,第一个题目顺利通过,但第二个题由于cin的速度过慢,所以一开始并未顺利ac,究于是否是算法出了问题,我又用prim算法敲了一次,结果也是未ac,最终换成scanf之后两个代码均顺利ac。虽然浪费了大量的时间,但对于代码的模板起到了一定的熟悉作用,下面总结一下两种算法: 对于pr原创 2017-08-03 18:05:51 · 199 阅读 · 0 评论 -
2017暑假训练第十天
今天的训练开始了二分和单调队列的练习,由于练习中有以前的原题,凭借着记忆,1a了所有的原题,而后完成了两道单调队列的题,感觉细节把握上还需要更加的准确,尤其是数组滚动的状态和初始化等等方面,简单的看看课件,和自己实际的操作还是有一定的差距的,细节注意不到就会铸就大的错误,主要的难点在于如何把一个题目联系到单调队列上来以及单调队列内容的含义等等。 下午的比赛相对简单,在两个半小时我就完成了所有原创 2017-08-10 19:49:22 · 180 阅读 · 0 评论 -
2017暑假训练第十七天
今天继续看博客的内容,也是边看边写吧,整理些思路和有用的东西。 首先是这个题:poj 1195 Mobile phones 一个二维的树状数组的题,于是趁机整理一下二维的模板,大致如下:#include#include#include#includeusing namespace std;int n;int c[1010][1010];int lowbi原创 2017-08-18 09:35:59 · 344 阅读 · 0 评论 -
2017暑假训练第十一天
今天的刷题又让我感到郁闷,感到快被long long和std::ios::sync_with_stdio(false);折磨死了,首先是这两个东西不兼容,如果同时使用std::ios::sync_with_stdio(false);以及long long的话会出现re的错误,后来改用scanf过之,接着又是一个题由于没有使用long long导致了wr而后又因为输入超时导致tle,而后遇到的大部分原创 2017-08-11 18:41:59 · 176 阅读 · 0 评论 -
2017开学训练第七周周末总结
赛前最后一个周末了,周六去机房继续做了线段树的题目,总算是对线段树开点窍了,一开始只能写模板题,知道它能用来解这种题目,能对模板有个改造能力,之后一段时间的做题还是得通过博客拓宽思路,现在真正理解线段树里面存的是什么了,操作也熟练了许多,看到题目自然就有这方面的一些想法,虽然有可能还是跟正解有些偏差,至少脑子里有些东西可以用了,感觉dp方面的应用还差点,那个对维数的压缩太神奇了,怎么看都不能理解的原创 2017-10-15 17:28:52 · 262 阅读 · 0 评论