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 ...
随机推荐
- win-DOS命令整理
1 md 建 文件夹2 cd 指向文件夹方向cd .. 进入上一级文件夹cd \ 回到根目录3 rd 删除文件夹4 dir 查看文件夹里的文件 dir /a 查看文件夹内全部文件含隐藏文件 5 ren ...
- 最短路径(Dijkstra算法)
算法局限性:边的权值不能为负. 需要两个辅助数组dist[],path[],分别记录起点到各点的最短距离和最短路径 算法步骤: 1.根据起点v0初始化dist[]和path[]数组. 2.在剩下的点中 ...
- 产品研发不等待 i.MX6Q全新推出增强版本 官方店铺下单双重优惠
迅为全新推出PLUS版本的i.MX6Q方案,版本介绍:它是NXP公司全新推出的i.MX6Q增强版新品,显著增强了图形和存储器性能,面向较高图形性能的先进消费电子.汽车和工业多媒体应用的多核平台.
- JavaScript—var lef const区别
今天刚刚学JavaScript 因为以前学过.学起来也就轻松.今天在练习.流程控制语句的时候,用WebStrom 写的时候 var 声明变量的时候 下面老是有一条白线.开始以为是开发环境有问题 然后, ...
- 2018-2019-2 网络对抗技术 20165337 Exp3 免杀原理与实践
基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测:特征码就是一段数据.如果一个可执行文件(或其他运行的库.脚本等)包含特定的数据则被认为是恶意代码.AV软件厂商要做的就是尽量搜集最全 ...
- oracle INS-13001 环境不满足最低要求
使用windows10等系统安装oracle 11g等版本的数据库时,经常会发现开始安装时弹出[INS-13001 环境不满足最低要求]的提示,此时可以点击[是]继续安装. 也可以点击[否]结束安装, ...
- java爬虫实现爬取百度风云榜Top10
最近在项目中遇到了java和python爬虫进行程序调用和接口对接的问题, 刚开始也是调试了好久才得出点门道. 而后,自己也发现了爬虫的好玩之处,边想着用java来写个爬虫玩玩,虽说是个不起眼的dem ...
- Centos7创建支持ssh服务的docker镜像
如何在centos7中使用docker创建一个支持ssh连接的容器 1.拉取centos7.4镜像(由于7.4目前是最稳定的版本,所以推荐使用centos7.4) docker pull centos ...
- Docker commit 命令保存的镜像文件太大的问题
基础镜像: centos7.5 进入容器后, 先后安装了 jdk1.8, maven3.6.0, git, rocketmq4.3.2 安装完成后使用 docker commit 命令保存为镜像 结果 ...
- 局域网中访问mac中的linux虚拟机服务
然后到虚拟机的linux系统上面执行ifconfig查看linux系统的IP地址,访问这个地址就能访问mac里面的虚拟机