[置顶] 学习记录
把每天所学的东西记录下来,算是对自己的一种监督吧。
更新按照时间降序排列。
2017-8-14
- 心态爆炸
- 为什么心态爆炸呢,昨天写了一道裸树链剖分,debug3小时,wa 31发,最后发现居然是在点更新的时候没写pushdown。。。滚了个大粗。
- 这告诉我们一个道理,有lazy标记的时候,点更新和区间更新都要pushdown。
2017-8-12
- 好久不更新了 =_= 原因是比较懒吧
- 在用边表(链式向前星)的时候,大小要开边的两倍(对于无向图来说),因为每条边都存了两次。
- 线段树的区间最大,不要用无脑递归子树的方法,要判断LR然后左右分别递归,并和ans取max。
- 这几天主要学习了树上的算法,感觉还是挺有趣的。
2017-3-27
- 做题记录
- UVA.548 Tree(二叉树 DFS)
全部是DFS的思想,递归建树,递归求解。 - UVA.839 Not so Mobile ( 二叉树 DFS)
也是DFS的思想,递归计算就好了。一开始打算先保存节点信息,后来发现没有这个必要,同时也不短RE。不如直接递归算。 - UVA.699 The Falling Leaves (二叉树 思维题)
相当于用数组模拟树节点的信息,根据题目求解,本质还是DFS。 - UVA.297 Quadtrees (四分树 DFS)
二叉树的变形,四分树。用数组模拟的话要想一下节点的编码规则,想了好一会。然后就是合并计算的规则,搞清楚就好啦。
- UVA.548 Tree(二叉树 DFS)
2017-3-26
- 校赛现场赛
心得体会流水账
从徐州回来,紧接着就是校赛。本来不报什么大希望的,感觉马上就会背实验室T了,但是还是要殊死一搏。A题排序,水过,然后开始肝最后一题,神知道最后一题体面错了,我看了半天题目和样例对不上,最后猜测题目错。然后按照纠正后的题目意思写一发,但是有个细节没处理好,2A。紧接着一道贪心,1A。另外一道水题1A,差不多我感觉剩下的题目和我无缘了。但是还是要垂死挣扎一下,有一道字典树。之间没做过字典树的题目,但是感觉这道题用数据结构只是应该能解决。首先想到Vector,数组等存一下,但是发现这样T,一定内存爆炸。然后想到了链表,指针那种结构,于是按照指针方式敲了一发,1A,有点惊喜。没做过字典树,现场写的,居然。。。此时剩下1h准备最后肝一下B题,看了一眼数据范围,感觉应该是个字符串大模拟(事实证明是错误的……),觉得1h写稳了,最后样例调出来,还是没A。
2017-3-20 —— 2017-3-25
校赛网络赛/4C
心得体会流水账
周末的网络赛和转专业面试时间冲突,切了一道水题就去面试了。面试的都是各系的主任,副主任。之前还说每个人准备大约5mins的自我介绍。轮到我面试官上来就直接问我为什么院内转,我!@#¥%……&*()。还好这个问题也是之前准备过的。面试回来看笔试淘汰过剩下的数量和专业拟收的数量一样,和汪神一“对拍”,觉得稳了。果不其然,真是稳了,Rank2顺利转成。网络赛切水题,毕竟2个星期都没敲代码了,手生真的是什么都不会了,有一道水题还是死活A不了,那个排名惨不忍睹,不忍直视。然后剩下的时间加紧备战4C。一开始主办方是把我们放到杭州杭电的,终于可以仰慕杭电了。不知出于什么原因,最后又被安排到了矿大。紧急改签,还好有票。25上午11点左右到的矿大,紧邻一座山的矿大,由于最后时间关系没有机会去后面的山上玩玩。矿大的伙食还是不错的,中午4菜1汤,2荤2素,吃撑了。 12点45进机房。由于网络原因,硬生生拖到14点10分开始。 感觉L1-1应该是L1比较难的题了,没想那么多,上来就按照1-8的顺序肝,被L1-1晚的心态有点崩,不过还好一路切了下来。L1只差1题的4分没拿,准备切L2,发现本队只有600+分数,超级心塞,不过觉得再过1h怎么也800了吧,于是就开始切L2。L2-1排序题水,L2-3是MAP(可能记错)也水,L2-4是记录深度DFS,最后时间不够没肝完遗憾。最后看了一下榜,居然没到800,只有710+,心塞。 矿大主办方还是很好的,由于比赛延迟,可能赶不上火车,主办方准备的车送到车站,于是顺利赶上绿皮火车。
个人方面水题切的不快是主要原因,一般水题切不动,心态就崩了,直接影响到后面发挥。DEBUG能力也很重要,不然就是写好了程序,DEBUG一个小时,心态也就崩了。常用算法一定要熟练啊,否则最后肝不完的都是遗憾了。最后,最好先总览一遍题目,看一下难易,一直肝难题,放着简单题不做,逐末舍本。
2017-3-2 —— 2017-3-19
准备转专业考试,这几天没有刷题。
2017-3-1
- 做题记录
- UVA.11464 Even Parity (思维题 开关问题)
开关问题:即根据已知的条件课求解出全局的解。这道题还有的Trick是二进制枚举排列组合(貌似小白后面有这个专题,不过还没看到)。 - UVA.11636 Hello World! (思维题)
二进制的应用,很有意思的一道题,可惜一开始想发错了,卡了半天。 - UVA.540 Team Queue (队列)
题目中有2种队列,一个是队伍的队列,一个是队伍成员的队列,熟悉一下队列的写法。 - UVA.136 Ugly Numbers (优先队列)
优先队列,默认在队列中是按照升序排列的所以小的都是在前面,依次取出队列中小的值,然后计算丑数即可。
- UVA.11464 Even Parity (思维题 开关问题)
2017-2-26
- 做题记录
- UVA 13000 中位数模型,掌握推导的方法。转换单成单变量极值问题的模型。
- UVALive.3708 按一定比例扩大,+0.5下取整来求得最近的位置。
- UVALive.2995 三维坐标的转换问题。三维左边转换的方法,不要死记硬背公式。
- UVA.10881 经典的相遇模型。注意点:
1.要观察题目中的给出的状态,巧妙转化。
2.不要急于下手写程序,先找到大概的思路,然后考虑各种情况,在设计程序。
3.在写程序的时候先着手大方面,然后处理细节。
2017-2-22
做题记录
HDU 1166/1754 两道线段树的题目,主要涉及单点更新,单点替换,区间求和和区间最值的问题。注意事项如下:
1.由于对模板的不熟悉,rt打成rn导致编译不能通过;
2.对于区间询问的函数不熟悉,判断的条件应该是L>=l&&r<=R,这表示当前节点所表示的区间[l,r]全部包含在要查询的区间[L,R]内,故应该直接返回其节点的值以便累加。UVA.10474 二分查找的复习,结果错误百出。注意事项如下:
1.需要传入的参数是,搜索的区间[l,r]和搜索的目标值t;
2.一般被搜索的对象以全局变量的身份出现,故不需要传参进去;
3.退出循环的条件是l < r 注意这里可没有等号;
4.若t在mid左边或等于mid,要把右坐标r移动到m的位置,反之,要把l移动到mid+1的位置;
5.最后直接返回l即可,l即为找到的匹配位置,或者是最接近的位置。
6.这种写法还有改进的余地。UVA.12096 栈+stl的应用,收获如下:
1.对数据结构又有了宏观的上的认识;
2.熟悉了常用STL(set,map,vector)的常用用法;
3.学习了一种问题转化的方式。