G_Meteor
AKK
展开
-
训练日记-1
昨天由于服务器问题,前面老提交失败,到晚上服务器恢复后刷了两道dp题,刷完之后有点困就直接去睡觉了,没来得急写总结,今天把昨天的一块总结了。 昨天刷的两道dp题都是深搜题,深搜主要用递归函数来完成,用标记数组或变量来控制循环的结束,这点还是清楚的,但是运用起来还不是太熟练,主要就在如何控制循环结束方面,希望以后能对这方面有更好的掌握。 今天主要是做了那个CF1练习赛,原创 2017-08-01 21:10:15 · 213 阅读 · 0 评论 -
训练日记-2
今天主要在做暑假训练一,A了三道题,还有一道有点错误,暂时还没找出来没有A。今天算是做了4道吧,不过今天做的四道都是BFS广搜题,BFS题一般为求最短路径问题,主要用queue队列来求解,一般再与结构体搭配使用,同时BFS也都有类似的框架,那就是先将所给的那个初始数值放到队列中,然后循环,每次从队头取值,若所取对头值满足条件,输出当时的次数,即为最短路线,同时每次循环再将满足中间条件的数据放入队列原创 2017-08-02 21:26:27 · 223 阅读 · 0 评论 -
训练日记-3
今天合计算是刷了五道题吧,首先把昨天晚上有点错误没A的题找出错误来给A了,错误竟然是是与非给弄反了,我竟然还找了半天错误。。。其次又刷了两道训练一上的题,这两道跟昨天一样,还是BFS题,其中有一道要求输出满足条件的过程的。刚开始还没思路,不知道怎么来储存过程,然后仔细一想,再在结构体中创建一个数组用来储存过程不就ok了,然后问题就应然而解了。然后下午就在做那个练习赛CF2,只看了前几道,都是思路题原创 2017-08-03 21:37:27 · 239 阅读 · 0 评论 -
训练日记-4
今天由于家里有事的原因只刷了两道题,今天这两道题都是DFS深搜题。其中一道为将N个点分为两组,要求求这两组点之间距离的最大权值问题;另一道为一个9*9的二维数组补充数字的问题,要求每行、每列、每小3*3数组中的数字都由1-9组成。做DFS题还不是特别有思路,尤其是对于第一道题,刚虽然猜到了要用DFS,但是刚开始完全没有思路,想了半天终于有点思路后,然后就开始写,写完了大体框架了,在写主要函数体的时原创 2017-08-04 21:38:45 · 199 阅读 · 0 评论 -
训练日记-5
这两天由于家里原因刷题并不是很多,同时昨天晚上也没来得及写总结,所以今天就一块总结了,请老师见谅。这两天算是A了4道题吧,其中三道题为DFS题,一道为DFS+BFS的。 通过最近这几天DFS题的练习,对DFS的理解更加深入了,同时对DFS循环结束的控制也更好了,每道DFS题的关键在于如何控制循环结束、如何控制进行下一步的循环,只要根据具体题意理解好这两个方面,那么这道题的大体解题思原创 2017-08-06 21:50:55 · 189 阅读 · 0 评论 -
训练日记-6
今天看了4道题,一道为DFS题,那个切纸片的题,刚开时看完题意感觉挺简单的,但是细想之后并不是那么容易解决,主要在于如何处理状态转以后新的纸片组成数字的情况,冥思苦想两个小时还是没有思考出如何处理。然后看了一下后面几个题,一看都是最短生成树问题 ,可能由于这种题型的题练的比较少吧,刚开始的时候完全没印象了,然后把ppt里的Dijkstra算法、Bellman-Ford算法、SPFA算法、Prim算原创 2017-08-07 21:41:50 · 168 阅读 · 0 评论 -
训练日记-7
今天上午首先把昨天提交失败的那几道给A了,这几道都是用Prim算法做的,其中前两道很快就A过了,在第三道的时候死活过不了了。样例也对,格式也对,但是就是过不了,以为是程序某个细节还没处理好,然后各种尝试各种改,提交了十几遍仍不过,改为Dijkstra算法还是不过,当时就很纳闷了。在不经意间将输出double格式控制的%lf改为了%f,这样竟然就过了。。。。。。因为要求输出保留三位小数,所以用的pr原创 2017-08-08 21:15:23 · 191 阅读 · 0 评论 -
训练日记-8
今天主要还是在刷训练一上的题,主要还是最短路跟最小生成树的问题,今天又熟悉了一下那几个算法,用Dijkstra、Floyd、Prim算法分别A了一道题,通过这几道题对最短路跟最小生成树的算法有了更深入的理解,不过有时不知道改用哪个算法很尴尬,感觉差不多都能用,而有的却不对。。。 继续努力,在以后再对最短路跟最小生成树算法进行更熟练的掌握。原创 2017-08-09 21:04:31 · 195 阅读 · 0 评论 -
训练日记-9
今天主要复习了一下二分算法并刷了几道二分水题熟悉了一下二分,可能二分练习的比较多了吧,二分复习了一下就找到以前的感觉了。 下午主要在刷练习赛一,感觉这次的练习赛的难度挺低的。第一道题为年月日的基本思路题;第二题为递推的一道原题; 第三题、第五题都为DPS深搜题,不过都是基本的深搜问题;第四题为素数问题,主要考察了晒素数算法,刚开始用简单的素数标记,然后用条件筛选,不知道遗漏了什么条件原创 2017-08-10 22:40:27 · 205 阅读 · 0 评论 -
训练日记-10
今天主要在刷训练二二分专题,二分还算比较熟悉的,做起来也不是特别费力,在今天的做题中发现了二分中几个容易出错的细节。最主要的是控制循环的问题,while循环中的精度问题是一方面,主要还是左端点跟右端点的控制问题,思路没问题的话,这两方面就决定了你是Acceptd还是Wrong还是超时。今天好几次都死在这个问题上,不过吃一堑长一智,以后会多加注意这两个细节控制的。 明天继续加油!原创 2017-08-11 22:38:42 · 214 阅读 · 0 评论 -
训练日记-11
今天主要还是在做二分那个专题,感觉越做越有感觉了,基本套路就是直接对要求的值进行二分搜索不断缩小范围,最后满足条件并符合精确度的值即为要求的解。其二分题的关键就在于范围控制上,根据具体题意找到范围控制条件,然后根据不同的条件进行不同的范围收缩就可以了。 刷了几道二分题后又看了一下单调队列的那个ppt,感觉单调队列就是优化暴力排序的一类算法。 其性质为:队列中元素之间的关系原创 2017-08-12 22:02:58 · 204 阅读 · 0 评论 -
训练日记-12
这两天主要学习了一下单调队列,研究了一下课件中单调队列的例题,并把训练二中单调队列的题目都给刷了。单调队列的算法并没有什么难度,难点就在于如何单调队列与相应的题目结合起来,不同的题目需要求的解也是不同的,其难点就相当于如何将题目所求的解如何单调队列表示出来。 其次从网上看了一下单调栈的基本知识以及相关算法,单调栈具有如下性质: 1.单调栈里的元素具有单调性。原创 2017-08-14 21:33:04 · 232 阅读 · 0 评论 -
训练日记-13
这几天主要在看树状数组的相关学习资料了,树状数组是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值(如果加入多个辅助数组则可以实现区间修改与区间查询)。 树状数组的基本模版如下: lowbite操作:int lo原创 2017-08-17 21:53:56 · 217 阅读 · 0 评论 -
训练日记-14
今天主要是结合例题更深入的理解了一下树状数组。其主要有三种基本模式: 1.改变某一元素的值,查询某一区间内所有元素的和(单点更新,区间查询)。#define Lowbit(p) (p&(-(p)))//向上更新,向下求和void Update(int *BIT,int p,int val){ while ( p { BI原创 2017-08-18 22:40:20 · 210 阅读 · 0 评论 -
训练日记-15
这几天主要还是在看树状数组方面的知识点例题以及刷练习题,树状数组除了用于求和外,还可以用于找出容器中大于某个数的第k个数,还可以进行插入删除等操作,并且树状数组还可以用二分优化。其用二分优化的查找大于某个数的第k个数的基本模版如下:#include using namespace std;#define maxn 100002int C[maxn], n;int low原创 2017-08-22 22:50:30 · 209 阅读 · 0 评论 -
训练日记-16
今天首先把树状数组中求逆序数的算法看了一下,然后看了一下线段树的课件。 逆序数的基本框架如下:#include #include #include #include #include using namespace std; int b[500005], c[500005];int n; struct node{ i原创 2017-08-23 22:41:10 · 250 阅读 · 0 评论 -
训练日记-17
今天上午由于家里原因并没有刷题,下午就刷了一下午的练习赛,刚开始就从A题开始看,上来A题就是个数学题,想了半天有点思路了,然后根据自己的思路好歹的把代码写出来了,在写的过程中就感觉有漏洞,也没想出来怎么处理,最后wrong,放弃了看下一道。B题一眼望去就是个原题,是最近训练专题的一道单调栈的原题,然后就直接A了。后面的题都看了一下,就只有D题有思路,但是刚开始循环顺序有点错误一直wrong;C题虽原创 2017-08-24 22:07:49 · 226 阅读 · 0 评论 -
暑假训练总结
不知不觉暑假就要这样结束了,这个假期主要在弄ACM了,但是由于家里原因并没有来学校参加集训,而是在家里跟着学知识点刷题做练习赛。 编程作为计算机的基础以及入门知识,其重要性自然不用说,而且大一刚开始就是学算法,当时感觉编程挺感兴趣的,然后参加那个新生编程赛。刚开始接触到ACM也是在这次新生编程比赛上吧,当时听到学长对ACM的介绍后,感觉挺感兴趣的,再加上当时感觉编程也是挺有意思的,然后大一寒原创 2017-08-26 20:55:22 · 289 阅读 · 0 评论 -
训练日记-18
这次的训练日记主要是关于线段树的,线段树的本质是一棵二叉树,线段树的每一个节点记录的是一段区间的信息。线段树类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(lgN)! 虽然线段树的时间复杂度比较低,但是其算法需要的空间很大,线段树需要的空间为数组大小的四倍!原创 2017-08-31 22:02:24 · 206 阅读 · 0 评论 -
训练日记-19
这几天主要看了一下课件里的例题并刷了几道线段树练习题,上次主要看的是单点更新的,这次主要看了一下区间更新的,区间更新跟单点更新的不同之处在于另定义一个数组用于储存修改操作,其分区间也应被修改,但是修改储存在了数组中,可以暂时不用修改;而对于当前区间比需要的目标区间大的时候,则需要往下进行修改了。 其基本模版如下:void update(int num,int le,int ri原创 2017-09-03 22:54:33 · 244 阅读 · 0 评论 -
训练日记-20
这几天主要是在看课件中跟博客中例题,课件中的代码跟博客中的代码完全是两种风格,相较来说还是比较喜欢用结构体的线段树的编程风格,可能是因为用结构体储存数据简单明了吧,而且还比较通俗易懂。 单点更新的比较好掌握,单点更新类的线段树相对来说算是比较熟练了,然而区间更新的还并没有掌握的很好。其次是区间合并问题跟扫描线问题,由于时间问题还没来得及看(物理实验报告三晚上写完也是很伤的。。。刚开原创 2017-09-07 22:18:50 · 228 阅读 · 0 评论 -
训练日记-21
这两天主要就是整周六周末下午的比赛,通过这两天的比赛发现自己的能力还有点欠缺,而且以前学的内容也有点遗忘了,同时有些题目与对应的算法联系不起来。还需要多加积累,多加复习以前学过的算法,起码争取学过算法对应的题型能A出来。 周六由于一个队友考试的原因,只能两个人组一下了,最终以两个题告终。这两道都是思路题,其中一道为签到题。另一道思路是很容易想到,但是数据处理起来就有点麻烦了,刚开原创 2017-09-10 22:45:07 · 211 阅读 · 0 评论 -
训练日记-22
这几天主要在看博客中里的例题,然后刷了几道线段树专题中的例题。感觉线段树很多是用来缩减时间复杂度的,一般的遍历数组时间复杂度为O(n),而线段树搜索时间复杂度为O(logn),但是需要的空间为一般数组空间的四倍,到时候还得根据具体题目具体分析。 线段树最简单的应用就是记录线段是否被覆盖,随时查询当前备覆盖线段的总长度。可以在结点结构中加入一个变量代表当前结点代表的子树中被覆盖的线段长原创 2017-09-14 22:22:03 · 227 阅读 · 0 评论 -
训练日记-23
今周末这两天的比赛完全不是一个档次的,周六那场比赛不仅题目恶心而且题意还表达有问题,很无语。。。而且其中一道题竟然是根据数据大小以及数据量之间的关系可以找出一个万能答案,看到题解我眼泪掉下来。。。第一次碰到这样的题。。。 不过,周末的题还挺不错,符合正常的出题规则。但是最终以三题告终,并不是太理想。其中两道为一道签到题,另外一道为数学+二分的题,最值得庆幸的则是第三道。第三道也是与原创 2017-09-17 22:20:27 · 250 阅读 · 0 评论 -
训练日记-24
通过这几天对线段树专题例题的研究,发现线段树并不是一块很容易啃的肉,虽然对于简单的单点更新及查找或区间更新及查找算法挺简单的,也挺好理解的,但是对于一些变化一下的题目,套用起来这个算法就是个技术活了,而且自己模拟模拟着算法就容易晕了。再加上课多,基本一道题就得看上他一二天才能研究明白怎么运用线段树解决问题的,曾一道例题看了两天才绕过来是怎么运用线段树的。。。 今晚上看了一下北京赛区的原创 2017-09-21 21:49:19 · 206 阅读 · 0 评论 -
训练日记-25
今周的比赛还是挫折重重。。。虽然对于某个题都大体知道用基本的算法解决,但是对于一些数据的细节处理并不好处理。。。可能是对算法理解的还不够深。。。 这两天的比赛收获还是挺大的,昨天掌握了如何用树状数组求区间最值,今天又学会了时间复杂度为O(n*lngn)的最长上升子序列的算法。 通过这六天的比赛训练,发现自己还需要掌握的算法还有很多,尤其是低时间复杂度的算法。虽然这六天原创 2017-09-24 22:32:58 · 188 阅读 · 0 评论 -
训练日记-26
这几天首先补了一下前几次比赛中有思路但是并没有成功A掉的题,发现对算法的深入理解真的很重要,现在挺多网络赛题有思路,知道用什么算法做,但是对于里面数据的操作想不到怎么整。 然后主要就是在刷树状数组专题了,由于这个专题是临近开学时开的,乱七八糟的事比较多,暑假落下不少,现在得赶快补了。首先重新再看了一遍树状数组的原理课件,理解了算法的基本原理后就不难理解了,发现树状数组主要有两种操原创 2017-09-28 22:37:27 · 222 阅读 · 0 评论 -
训练日记-27
这几天主要刷了几道树状数组的题,今天由于杭电关了,刷了两道国庆专辑里的题。这几天刷的题有几道都很相似的,其中一类为去重复数区间求和问题,还有一类为边建树边求最大值问题,还有三维树状数组求和问题(很考察人的空间想象能力)。 其中还学会了如何用scanf输入单个字符,主要用两种方式, 一种是输入字符时先输入空格char c;scanf("\n"); sca原创 2017-10-01 20:51:37 · 229 阅读 · 0 评论 -
训练日记-28
昨天晚上由于班车的原因到学校比较晚,收拾了半天东西,有点累,直接睡了。。。忘写总结了。。。今天来补上昨天的总结。 这个假期主要就忙于树状数组跟线段树这两个专项练习,放假前两天由于服务器原因,杭电关了,所以只能先刷了几道国庆专辑上的题,杭电恢复后就开始正常的刷题了。刚开始先刷的树状数组专题,首先是把介绍树状数组的课件又重新看了一遍,对树状数组有了进一步的理解。由于这个专题为马上开学跟原创 2017-10-09 21:00:01 · 217 阅读 · 0 评论 -
训练日记-29
这几天尽力刷了两道题。。。周一到周五期间课多的确实有点离谱。。。就只能靠晚上回宿舍的一段时间来看一下题,但是时间并不是很充足。。。所以这几天尽力只能刷了两道。 这两道题主要是线段树结合离散化进行操作的题目。离散化是把无限空间中的有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据的相对大小的条件下,对数据进行相应的缩小。原创 2017-10-12 22:20:03 · 185 阅读 · 0 评论 -
训练日记-30
基本每周就周末时间多点,周末能多刷几道题,这两天好像刷了两道树状数组题,还有三道线段树题,这几道题大部分都是与离散化有关的,其中线段树有两道是关于扫描线的。在做这类问题之前,实现去博客看了一下扫描线的基本原理跟具体操作。 扫描线主要用于帮助线段树来解决二维面积问题的。 其具体实现的基本模版如下:#include#include#inc原创 2017-10-15 22:43:16 · 390 阅读 · 0 评论 -
训练日记-31
我选的是数学部分,所以最近在看数论课件,我首先看的是“ACM中的数学问题”这个课件,前面部分主要讲的是求最大公约数以及最小公倍数的相关算法以及基本原理,同时还get到了用最大公约数求解线性函数的方法。同时我记得在一本算法书中看到过可以直接求最大公约数的库函数,该函数为__gcd(a,b),意为求a与b的最大公约数,该函数需要头文件 #include 同时还看了很多常用的对数据处理原创 2017-10-19 22:10:30 · 464 阅读 · 0 评论 -
训练日记-32
这几天主要还是在看数论的相关课件,主要看的有中国剩余函数、算数基本定理、欧拉函数。 中国剩余定理: 两个整数a、b,若它们除以整数m所得的余数相等,则称a与b对于模m同余或a同余于b模m记作 a≡b (mod m) 性质:1 反身性 a≡a (mod m)2 对称性 若a≡b(mod m),则b≡a (mod m)3 传递性 若a≡b (mod原创 2017-10-22 20:33:28 · 244 阅读 · 0 评论 -
训练日记-33
这几天的看的数论内容有互素、筛法、素数测试,还有就是昨晚的比赛,昨晚的比赛都是思路题,没有用到什么具体的算法,难度偏低,成功A出四道,第五道实在是A不出来了,第五道翻译起来就有点难懂。。。 最后在比赛结束前才弄懂了什么意思。。。但是感觉挺麻烦的,暴力处理并不好处理。比赛结束后查了一下第五题的题意顺便看了一下大佬的解题思路,这道题好像需要用到2-SAT算法。由于时间问题,只是粗略的了解了一下2-SA原创 2017-10-26 20:11:37 · 226 阅读 · 0 评论 -
训练日记-34
这几天看的数论内容有大整数分解问题、大数k次方前x位数据高精度问题,还刷了几道数论练习题上的较水的题,一道为最大公约数跟最小公倍数的基础题,还有一道就是大数k次方前x位数据高精度问题。还有就是昨天的练习赛,这次的难度相对来说还是比较简单的,还是大部分都是思路题,可能有的题中也蕴含着相关的较为简便的算法。 ACM路还很长。。。继续加油!原创 2017-10-29 22:26:37 · 275 阅读 · 0 评论 -
训练日记-35
这几天主要是在看《ACM必看-数论》ppt里的数论内容,还有看了两篇博客,由于这几天课比较多的原因,而且还有要准备周末概率结课考试的原因,基本只利用空余时间看了一下基础知识,题刷的有点少。。。还有就是昨天的训练赛,虽然是秦皇岛赛区的部分题目,但是感觉这些题目总体难度并不是很高,做了三个小时,成功A出了三道,这三道都没用到什么高深的算法,一道暴力,一道规律,还有一道特水的题。。。虽然又延长了两个小时原创 2017-11-02 21:48:46 · 209 阅读 · 0 评论 -
训练日记-36
由于今天有概率结课考试,所以这几天都在忙着复习概率了,并没有刷太多的题,就只有今天考完试后看了点数论ppt刷了三道题。今晚上因为一道题的小细节绊了好久。。。 但是感觉数轮题的难度并不是很高,或许是因为数学学的比较多吧。。。 在接下来的一周了要抓紧补一下今周准备概率考试落下的题了。 继续加油!原创 2017-11-05 22:04:07 · 205 阅读 · 0 评论 -
训练日记-37
这几天主要再刷数论练习专题,由于上周准备概率结课考试的原因并没有刷多少,这几天补了一下,这几天得刷了十道左右吧。。。由于白天课也满满的,只能尽力补这么多了。。。不过数论部分做起来挺顺手的,都是一些数学问题,而且大部分是与素数、公因数、公倍数、是否有解以及进制相关的问题,不过都是些挺容易懂的数学问题,挺喜欢数论这部分的。 在接下来的几天里还得赶紧补上周落下的进度,继续加油!!!原创 2017-11-09 22:00:25 · 164 阅读 · 0 评论 -
训练日记-38
这几天主要还是在刷数论的相关练习专题,大约还是刷了10道左右吧。。。其中有几道还是挺有难度的,但是感觉整体难度还不算很难,主要有一些数论相关的专业术语有点难翻译。。。比如base翻译成基数就完全懵逼了。。。应该翻译成进制。 还有挺多题会用到欧拉函数的,欧拉函数用于求与n互素且小等于n的正整数个数 其基本摸版如下:int phi(int n) { int ret原创 2017-11-12 21:59:08 · 276 阅读 · 0 评论 -
训练日记-39
这几天主要就是边看数论知识边刷题,通过这新专题的5个题发现,挺多数论题都是相关结论的性质或原理的演变,所以掌握数论相关定理的原理以及其相关性质还是很重要的。数论题当推出最后最后结论表达式之后,代码就很好实现了。所以关键就在于掌握相关问题的基本原理及性质,然后进行推导。 然后就是昨天的练习赛,第一道题挺水的,做完第一题,然后开始看第三题,看了一个小时没看懂讲的什么,中间加上谷歌翻译都没原创 2017-11-16 21:35:41 · 183 阅读 · 0 评论