OI暑假集训游记
莞中OI集训游记
Written BY Jum Leon.
I
又是一载夏,本蒟蒻以特长生考入莞中,怀着忐忑的心情到了8月,是集训之际。怀着对算法学习的向往心情被大佬暴虐的一丝恐惧来到了莞中。
这里真是个好地方啊,座居莞城中央,聚集四方灵气。伙食好,我们学习自然好。(廖老师超级友好的
正文
II
感悟
首先感觉在莞中学习真的十分幸运,这里学习的环境、氛围都很好。我们可以互相帮助,互相帮忙讲解不理解的题目,或是分享自己的方法。有廖老师带我们飞(强,组织我们讲解题目,重点难点廖老师会亲自给我们讲解。我觉得廖老师是一个很有耐心,很好的老师,他不仅仅帮我们细致的讲课,在我们做题时遭遇困难时会亲自帮忙讲解,审查代码,发现并且指出我们具体的学习上的错误,十分有利于我们对自己进一步的优化与学习。
在莞中每天早出晚归,觉得莞中的早餐大包特别好吃;清晨校门假山前的莲花锦鲤好看;傍晚南区的天空云彩十分灿烂;三尺讲台上的廖老师十分友爱。
收获
收获如秋日果园中累累硕果般。有好几方面的。
首先是学习上的。对于提高组的题目,题型有了一个更加完全的了解。
巩固了许多基础的数据结构。栈,队列,堆,链式前向星等数据结构。还有提高组十常用并且高效的并查集,哈希表等。还学习了C++特有的STL:动态vector数组,优先队列,重定义运算符等。
除了数据结构,我们主要学习的就是算法了,重新熟悉了深搜,广搜,在广搜专题中学习了特殊广搜题型的状态压缩,有关二进制的位运算,还有STL的queue应用,提高了我们对算法的认知。
学习并巩固了许多学过和没有学过的图论算法,最基础的最小生成树开始,了解了Prim和Kruskal的算法工作原理,以及哪个适用于稠密图,哪个适用于稀疏图。
三种常见的最短路算法,Floyd,Dijkstra,SPFA。从单源点到多源点。在结合题目的练习中总结了最短路算法的应用,还有vector应用于邻接链表的结构,在某些题目中单向边和反向边的应用。 用SPFA处理图中负边权和环的情况。
学习了堆的原理,操作和维护一个堆的方法,以及在最小生成树Prim算法和单源最短路Dijkstra算法中如何用堆优化时间效率。学习了并查集的原理和并查集的优化方法,以及在最小生成树Kruskal算法中应用并查集优化时间效率。还有拓扑思想和拓扑中的关键路径。
动态规划方面同样收获颇丰。从大量的题目中了解到了基础的动态规划算法的变形,如背包问题的变形,最大连续子序列和,最长不下降序列,最长公共子序列的变形。以及区间动态规划的巩固掌握,附加值动态规划的预处理,还有树形动态规划的初步。
最后就是离散思想的空间优化和高效,还有初等数论的学习。
期许
这段时间是我学习OI的好机会,期望自己在高一的NOIP中拿到一等奖。对于集训期间自己的表现满意,每天认真的Coding,在不懂的地方找同学老师讨论,理解透彻。对自己的期许就是在OI路上继续走下去,参加各大比赛,GDOI、GDKOI等,提高自己的思维高度,学习更多的算法,不止步于联赛。对于自己的许多不足,数论方面的薄弱,以及许多更高级数据结构,Splay,平衡二叉树等还需继续加油学习。
III
算法总结
注:超链接为内网链接,大部分的题可以在JoyOI或者洛谷等其他的OnlineJudge上找到
Day1:线性表
栈结构:先进后出。
习题:GZOI 1097 括号匹配的检查(初等栈),GZOI 1098 表达式计算(个位数的运算式)(进阶)。
高精度:原理特别简单,模拟手工运算。把模板背熟也很OK啊。
习题:GZOI 1008 【高精度与数制转换】求X的p次方(不知道算不算高精度)。
归并排序:拆分再拆分,最后组合。效率挺高
习题:GZOI 3427求逆序对
卡特兰数:递推实现,有可能会有高精度。第N个卡特兰数为
综合习题:GZOI 2273 number序列
Day2:深搜基础
深搜知识点:状态的传递,DFS剪枝
习题(较水):GZOI 3429 营救 ,GZOI 1214 排序集合
习题(进阶):GZOI 1027 驾车旅游, GZOI 1208 关路灯
Day3:广搜基础
广搜知识点:学会使用STL的queue
难点:广搜结合状态压缩,位运算
习题(较水):GZOI 1056 倒水,GZOI 1058 翻硬币
习题(进阶):GZOI 1240 黑白棋游戏 (状态压缩&位运算),GZOI 2268 这不是错误,而是特点(搜的比较复杂)
Day4:哈希与广搜
哈希知识点:%一个素数作为地址,将大化小,节省空间,查找效率高。
哈希模板题:Hash(理论基础)
值得一做的题:GZOI 2182师生树,GZOI 3730 马步问题,GZOI 3494树的最远距离
毒瘤题:GZIO 1241 魔板
Day5:最小生成树
最小生成树知识点:
- Prim算法:以一个点为中心,将所与之相连的边存入数组(可用堆或优先队列优化),再找出所有边中的最短边,扩张点,标记,在将与所有点相连未存入数组的边存入,重复扩张操作。
- Kruskal算法:将所有边按照边权为关键字排序,从小到大判断边的两段点是否连通。(可用并查集优化算法)
(掌握堆以及STL的优先队列的用法)
值得一刷的题:GZOI 3250 高速公路,GZOI 3723 Arctic Network,GZOI 3546 Truck History,GZOI 3547 Building Roads。
Day6:堆与并查集基础
堆知识点:堆排序:建立一个大根堆或者小根堆,将所有元素依次所有入队并且Shiftdown,输出时每次取堆顶元素,将堆底元素提到堆顶并且Shiftup。重复操作。
并查集知识点:查找操作&优化:从当前节点出发到父亲节点,将当前节点的父亲赋值给经过的节点的父亲。合并:将A和B合并,只需将B的根节点赋值给A的根节点的父亲即可。(详见GZOI 1520)
习题(堆):GZOI 1502 促销,GZOI 1503 序列和的前n小元素 。
习题(并查集):GZOI 1520 家族(理论基础)(模板题),GZOI 1521 银河英雄传说(noi2002)(毒瘤题)。
Day7:最短路
最短路基础算法dijkstra, floyd, bellman-ford, spfa.
关于最短路的题,要水的就很水,要难的也很毒瘤,但是A了以后就会感觉都是水题。
模板题:GZOI 1043&1044 dijkstra& floyd。
水题:GZOI 1454 哈利波特与魔法石,GZOI 1903 灾后重建,GZOI 3257 母牛跨栏。
稍微不水的题:GZOI 2103 消息传递问题,GZOI 3630 Party,GZOI 3509 邀请卡片。
值得一做的题:GZOI 3507 虫洞(SPFA),GZOI 2202 佳佳的魔法药水,GZOI 2277 时间与空间之旅。
Day8:拓扑排序与关键路径
拓扑知识点:在一个图中将入度为0的点依次剔除,并且将与之相连的边删除。(模板在GZOI 2240)
习题(普通拓扑):GZOI 2240 单挑排名(模板),GZOI 2281 烦人的幻灯片。
习题(关键路径):GZOI 3320 杂务,GZOI 2151 新校园
Day9:动态规划初步
知识点:背包问题,求最大连续子序列和,求最长不下降序列,求最长公共子序列。
Day10:经典动规问题
知识点:基础动态规划的变形以及理解
Day11:动规加强
知识点:区间DP,树形DP初步。
值得一做的题:GZOI 1084 糖果盒,GZOI 1088 邮局(IOI2000),GZOI 1089 多米诺骨牌(GDKOI2000),GZOI 1090 过桥问题(GDKOI2001),GZOI 1333 能量项链。
值得一做的树形DP:GZOI 2184 聚会的快乐
Day12:离散思想
知识点:点坐标,位置的离散化。
习题:GZOI 1562 矩形面积,GZOI 1561 幻灯片,GZOI 1563 Shaping Regions形成的区域,GZOI 1564 水塔水位。
不怎么毒瘤的毒瘤题:GZOI 1504 轮廓线(洛谷上的数据有误,我的代码GZOI上15ms)
Day13:初等数论(蒟蒻最怕
初等数论基础知识,素数问题,容斥原理,勾股定理,同余定理,其它数论基础。
Day14:完结撒花!!!
OI暑假集训游记的更多相关文章
- 2015UESTC 暑假集训总结
day1: 考微观经济学去了…… day2: 一开始就看了看一道题目最短的B题,拍了半小时交了上去wa了 感觉自己一定是自己想错了,于是去拍大家都过的A题,十分钟拍完交上去就A了 然后B题写了一发暴力 ...
- 2017FJ省队集训 游记
2017FJ省队集训 游记 又是一篇流水账 Day 1 今天是省队集训的第一天.早上骑车去八中,到的时候汗流太多浑身湿透被杨哥哥和runzhe2000 d了,一个说我去游泳了一个说我打球了...流完汗 ...
- STL 入门 (17 暑假集训第一周)
快速全排列的函数 头文件<algorithm> next_permutation(a,a+n) ---------------------------------------------- ...
- 暑假集训Day2 互不侵犯(状压dp)
这又是个状压dp (大型自闭现场) 题目大意: 在N*N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. ...
- 暑假集训Day1 整数划分
题目大意: 如何把一个正整数N(N长度<20)划分为M(M>=1)个部分,使这M个部分的乘积最大.N.M从键盘输入,输出最大值及一种划分方式. 输入格式: 第一行一个正整数T(T<= ...
- 正睿OI集训游记
什么嘛....就是去被虐的... 反正就是难受就是了.各种神仙知识点,神仙题目,各式各样的仙人掌..... 但是还是学会了不少东西...... 应该是OI生涯最后一次集训了吧.... 这次的感言还是好 ...
- 2013ACM暑假集训总结-致将走上大三征途的我
回想起这个暑假,从开始与雄鹰一起的纠结要不要进集训队,与吉吉博博组队参加地大邀请赛,害怕进不了集训队.当时激励我月份开始接触的,记得当时在弄运动会来着,然后就问了雄鹰一些输入输出的东西,怀着满心的期待 ...
- [补档]暑假集训D5总结
%dalao 今天又有dalao来讲课,讲的是网络流 网络流--从入门到放弃:7-29dalao讲课笔记--https://hzoi-mafia.github.io/2017/07/29/27/ ...
- [补档]暑假集训D3总结
考试 集训第一次考试,然而- - 总共四道题,两道打了DFS,一道暴力,一道~~输出样例~~乱搞,都是泪啊- - 目前只改了三道,回头改完那道题再上题解吧- - T2 [Poi2010]Monot ...
随机推荐
- robot framework
一.步骤 1.创建工程和测试套件 2.创建测试案例 3.写脚本,运行案例 4.查看运行结果 report报告主要是概括性的报告,总结案例执行情况.log报告是更为详细的案例步骤的报告. 二.RIDE工 ...
- important的妙用解决firefox和ie的css兼容问题
设置css的min-height属性.min-height在Firefox里有效,但IE无法识别.下面有个不错的解决方案,大家可以参考下 对于某些内容可变的层(比如用户评论),我们希望它有个最小的高度 ...
- seajs使用方法
必须执行seajs.use()时,才能自动执行预加载项 <script src="/UILib/sea.js"></script> <script s ...
- Contest2178 - 2019-4-18 高一noip基础知识点 测试7 题解版
刚刚改完题,才有时间发题解 传送门 T1 exgcd裸题 对a,b跑exgcd,答案就是x*c/gcd(a,b),y*c/gcd(a,b) 不合法的情况:当且仅当c%gcd(a,b)!=0 代码 T2 ...
- further configuration avilable 不见了
Dynameic Web Module的further configuration avilable 不见了 打开目录下的 org.eclipse.wst.common.project.facet. ...
- 机器学习用Pandas实现数据库的读取
#读取数据库数据#import pandas as pd 导入模块#import pymysql 导入数据库模块#con = pymysql.connect(host='localhost',po ...
- bootstrap时间格式化
/** * 将"2018-05-19T08:04:52.000+0000"这种格式的时间转化为正常格式 * @param time */ function timeFormat(t ...
- linux系统自动备份打包部署脚本
1.使用jenkins配置任务 2.执行脚本放在/home/guard/目录下 #!/bin/sh #author wangxiangyu #当前时间 DATE=$(date +%Y%m%d) #环境 ...
- STM32F0使用LL库实现PWM输出
在本次项目中,限于空间要求我们选用了STM32F030F4作为控制芯片.这款MCU不但封装紧凑,而且自带的Flash空间也非常有限,所以我们选择了LL库实现.本文我们将说明如何通过LL库实现PWM信号 ...
- Vue.js学习笔记(代码)
##v-cloak v-text v-html v-bind v-on的使用 <!DOCTYPE html> <html> <head> < ...