昨天主要是打比赛,今天主要是做题,现在总结一下这两天的收获.
昨天打了一下个人赛,水题虽然是显而易见的,但打的效率和速度都有待加强,要学下怎么加强代码的简练性同时保持一定的可读性.有一题卡了很久..因为题目要求输出XXL,我输出了XLL..看题实在太重要了.总的来说没能完成dp的F题,自己看出来是dp了,但打起来还是觉得会花很长的时间,所以赛后打了一下,卡了很久,犯了好多错误,变量打成了常量,小于等于写成小于各种各样的细节错误,提醒我代码要注意保证正误性呀.后来zb又给我一道类似的,同样也是SB错误.不过不管啦- -.晚上打了一下CF,第3题貌似贪心过去了,没有想原因,后来听群里的师兄讨论才知道怎么做,就是不知道大数据应该怎么过呢.第一题后来看了题解,发现过大数据的思路是对的,苦于个人水平不知道怎么实现,看了才知道了map的还能map<int,vector<int>>这样用,遍历时还能map.begin(),map.end(),取第key,val值的时候还能it->first,it->second.收获颇大
今天学习的知识自然就是dp啦,dp真是变化多样的呢~今天还看了一下哈夫曼树,用了下优先队列做了一道相关的题,并学习了一下优先队列的一种实现方式,堆.以前看算法导论时看的迷糊迷糊的,看了一下那本<<挑战程序设计竞赛>>的,发现简明易懂很多,而且实现代码也挺简洁易明的,构造神奇~又看了一下二叉索引树(Binary Indexed Tree),二维的和三维的有机会自己试下实现一下。
总结一下两天学习的知识点:
1.map的用法深化
2.哈夫曼树
3.优先队列,堆
4.BIT
5.dp的一种类型