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 ...
随机推荐
- #0 scrapy爬虫学习中遇到的坑记录
python 基础学习中对于scrapy的使用遇到了一些问题. 首先进行的是对Amazon.cn的检索结果页进行爬取,很顺利,无碍. 下一个目标是对baidu的搜索结果进行爬取 1,反爬虫 1.1 我 ...
- Oracle问题整合
1.安装Oracle和ado.net连接Oracle 在“环境变量”的“系统变量”中[必须添加]: ORACLE_HOME = C:\instantclient_11_2 TNS_ADMIN = C: ...
- eclipse出现jdk版本更新导致无法启动
启动出现的问题,截图: 解决办法: 1.找到自己jdk安装的bin目录,我的安装目录是:F:\jdk\bin 2.修改eclipse安装目录下的eclipse.ini,添加 -vmF:\jdk\bin ...
- Mountaineers Gym - 102021M (LCA+MST)
题目链接: Mountaineers Gym - 102021M 题目大意:给你一个n*m的矩阵,a[i][j]代表当前方块的高度,然后每次询问给你一个起点和终点,然后问你在这个图上你选择一条路径, ...
- Spring AOP获取方法的参数名称和参数值
aop配置: <aop:aspectj-autoproxy expose-proxy="true" /> @Before(value = "execution ...
- LeetCode第十七题-电话号码的字母组合
Letter Combinations of a Phone Number 问题简介: 给定包含2-9的数字的字符串,返回该数字可能表示的所有可能的字母组合. 下面给出了数字到字母的映射(就像在电话按 ...
- Python爬虫从入门到进阶(4)之xpath的使用
官网地址:https://lxml.de/xpathxslt.html 导入: from lxml import etree lxml.tree 支持 ElementTree 和 Element 上的 ...
- jmeter测试报告分析
转载:http://www.cnblogs.com/miaomiaokaixin/p/6118081.html 在cmd中用命令行执行jmeter脚本: jmeter地址 -n -t 脚本地址 ...
- Cyclone IV FPGA 器件笔记
LE(逻辑单元)操作模式 1) 正常模式 2)算术模式 可以看到对于Cy4来说正常模式和算术模式的区别就是正常模式有一个4输入LUT没有cout进位输出,而算术模式有两个3输入LUT有cout进位输出 ...
- 移动端右侧导航 显示隐藏js
transform与fixed影响 html按钮 <span class="nav-btn"></span> <span class="cl ...