NOIP2018出征策
蒟蒻的风之旅人即将退役,现在分享一下退休前的故事
首先,经过这么多时间的划水训练,我成功从一个萌新变成了一个蒟蒻。我学会了各种奇怪玄学的算法,比如说昨天老师讲的NOIP第三题通用的算法,叫做XG算法,也就是通过各种不同的操作使得程序总体分数变高的很实用的算法,通俗地讲,就是瞎搞算法。
好了不说废话,开始我的表演
1. 不可能用朴素算法的,这辈子都不可能写朴素暴力的。
首先最重要的是背各种算法的优化模板。例如线段树可以写成ZKW线段树,也就是非递归线段树来优化,最短路可以套上CLZ最小环来优化,等等。但是有的时候需要我们需要对程序先反向优化,这样才能再对程序进行正面优化。例如我们这次长沙集训第七天的T1 Adjoin,推出来的最朴素的公式应该是这个:
\[
f[i]=\begin{cases}
0&i=1\\
1 & i=2\\
f[i-1]+f[i-2] &i\%2=0\\
f[i-1]+f[i-2]+(flag==1)?-2:2&i\%2=1
\end{cases}
\]
这样我们就会得到一个一维的DP公式。但是因为这个递推式没有一个普适的公式,因此不能进行矩阵优化,强行导致我少了20分。而只要我们设法把这个一维公式解压成三维的或者二维的,就可以推出其通向公式,AC这一道题。所以说我们不仅要正面优化,还要反向优化,总之要让程序获得最好的优化。
统计一下用得到的一部分优化。
| 普通模板 | 优化模板 |
|---|---|
| 线段树\树状数组 | ZKW线段树 |
| Dijkstra | Dijkstra堆优化 |
| SPFA负环查询 | DFS形式的SPFA判断负环 |
| Floyd查找图上最小环 | CLZ最小环 |
| 各种DP | 各种DP优化不再列举 |
| 蒟蒻的普通代码 | register、inline |
| 快速读入 | fread读入 |
| 快速输出 | fwrite输出 |
| 浮点数直接运算 | fast_math |
| 手写代码 |
2. 不可能写正解的,这辈子都不可能写正解的,要写朴素暴力,要强行骗分。
有一个OI界的明星,叫渣渣辉,他喜欢为OI打广告,我记得他说过的一句我最喜欢的广告词是这样讲的。
无暴力,不传奇,是兄弟就来写暴力
ZZH:这句话不是我说的
由此可见,暴力对于OI选手的重要性。暴力可以吸取地下三十米的氮磷钾,不对,三十分的部分分。拿不到三十分,也可以拿到五分的关怀分。CCF社区送温暖,你高兴吗?暴力最好的朋友叫画图。平常我们可以使用几何画板画标准图来找题目的规律,考试时可以用画板画非标准图来脑洞规律,但是无论怎样,最终目的都是用暴力的方法发现规律。几何画板可以在学校的电脑上直接拷贝下来,亲测不用注册可以直接使用。
实在没有思路,可以尝试一下模拟退火和爬山算法。
这是两种奇技淫巧的东西,这么点时间肯定学不来的。但是里面取随机数的思想还是很有用的。我们可以试着简化一下步骤。原本的模拟退火里,我们每次随机取一个解,当随机取的解比当前解更优时我们选取它;当随机数的解比当前题解差时我们roll一个随机数,并按照这个随机数判断到底取不取它。当然,这个随机数怎么求我是不会的,所以我们之间选择无限取随机数,当以随机数为答案的解更优时我们选它,否则我们去取下一个随机数。我们可以通过控制程序运行时间的函数控制整个过程,在脸白的基础上AC。
3. 其实信息竞赛是一门文科。
即使是生物地理也不存在信息技术这么大的记背量。OI界肯定有背诵鬼才,也肯定有靠背模板成功的传奇人物(比如我)。不管是什么算法的模板,多背一背总是有好处的。举个例子,长沙集训第八天的T1,很多人都被最小环这一个坎卡住。但是如果你会背CLZ最小环,那早就AC了这道题然后去做下一题了。
模板,至关重要。
背模板的过程也有助于理解代码。当然,背模板的时候要集中注意力,不能将分心去想一些诸如人体穴位图之类的自己的兴趣爱好和职业规划。要虔诚地对待模板,要相信它是有生命的。要像按摩师那样给模板愉快的游戏体验。
同时,就像语文要判断修辞手法,用模板的时候要判断模板类别。例如,我们可以用ST表做需要不断修改序列的值的最大值查找题,可以用Dijkstra来找负边权里的最短路,或者用CLZ最小环来查找一个无向图里的最大环。只要完成以上这几点,就一定可以在NOIP赛场上反向AK。
4. 一个优秀的总结
屏幕在深夜微微发亮
思想在那虚树路径上彷徨
平面的向量交错生长
织成 忧伤的网
剪枝剪去我们的疯狂
SPFA告诉我前途在何方
01背包装下了忧伤
笑颜 洋溢脸庞
键盘微凉 鼠标微凉 指尖流淌 代码千行 凸包周长 直径多长 一进考场 全都忘光
你在OJ上提交了千百遍 却依然不能卡进那时限
双手敲尽代码也敲尽岁月 只有我一人 写的题解 凋零在OJ里面
tarjan陪伴强联通分量 生成树完成后思路才闪光
欧拉跑过的七桥古塘 让你
心驰神往
队列进出图上的方向
线段树区间修改求出总量
可持久留下的迹象
我们 俯身欣赏
数论算法
图论算法
高斯费马
树上开花
线性规划
动态规划
时间爆炸
如何优化??????
我在OI中辗转了千百天
却不让我看AK最后一眼
我用空间换回超限的时间
随重新编译 测完样例 才发现漏洞满篇
原来CE 是因选错语言
其实爆0 只因忘写文件
如果标算太难请坚定信念
不如回头再看一眼题面
以那暴力模拟向正解吊唁
蒟蒻的蜕变 神犇出现 终将与Au擦肩
屏幕在深夜微微发亮 我心在考场
NOIP2018出征策的更多相关文章
- NOIP2018 20天训练
Day 0 2018.10.20 其实写的时候已经是Day 1了--(凌晨两点) 终于停课了,爽啊 get树状数组+线段树(延迟标记) 洛谷:提高组所有nlogn模板+每日一道搜索题(基本的图的遍历题 ...
- 增强学习(二)----- 马尔可夫决策过程MDP
1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...
- 上海SAP代理商 电子行业ERP系统 SAP金牌代理商达策
上海SAP代理商 电子行业ERP系统 SAP金牌代理商达策上海达策为电子行业企业提供了多样的ERP信息化管理系统.基于多营运中心的管理架构体系,构造了以供应链.生产管理.财务一体化为核心,协同HR.B ...
- 上海SAP代理商 服装行业ERP系统 达策SAP金牌代理商
上海SAP代理商 服装行业ERP系统 达策SAP金牌代理商上海达策公司的前身是上海InfoPower技术有限公司,该公司在中国ERP软件的销售和服务长达20年.在2005年4月上海达策正式成立,致成立 ...
- 【cs229-Lecture16】马尔可夫决策过程
之前讲了监督学习和无监督学习,今天主要讲“强化学习”. 马尔科夫决策过程:Markov Decision Process(MDP) 价值函数:value function 值迭代:value iter ...
- 帝吧出征FB:这李毅吧的“爆吧”文化是如何形成的
声明:本文不对爆吧行为及其涉及的事件进行是非判断,只探讨帝吧文化本身,欢迎拍砖.更正和补充. 一.“帝吧FB出征”事件梳理 继上次全网集体骂 “薯片”事件后,昨日(1月20日)晚7点,又发生了一次互联 ...
- [题解]NOIP2018(普及组)T1标题统计(title)
NOIP2018(普及组)T1标题统计(title) 题解 [代码(AC)] #include <iostream> #include <cstdio> #include &l ...
- [Reinforcement Learning] 马尔可夫决策过程
在介绍马尔可夫决策过程之前,我们先介绍下情节性任务和连续性任务以及马尔可夫性. 情节性任务 vs. 连续任务 情节性任务(Episodic Tasks),所有的任务可以被可以分解成一系列情节,可以看作 ...
- NOIP2018:The First Step
NOIP2018 RP=Ackermann(4,3) Day 0 日常不想做题也不知道要写什么qwq Day 1 接到$smy$巨佬的催更私信于是来更了(原本准备咕掉的) 最开始的策略是准备总览题目, ...
随机推荐
- OPENGL绘制文字
OPENGL没有提供直接绘制文字的功能,需要借助于操作系统. 用OPENGL绘制文字比较常见的方法是利用显示列表.创建一系列显示列表,每个字符对应一个列表编号.例如,'A'对应列表编号1000+'A' ...
- Angular动态表单生成(三)
ng-dynamic-forms实践篇(上) 定个小目标 先来定个小目标吧,我们要实现的效果: 动态生成一个表单,里面的字段如下: 字段名称 字段类型 验证 备注 姓名 text 必填,长度小于15 ...
- SimpleDateFormat 的 format 方法使用具体解释
Java中怎么才干把日期转换成想要的格式呢.或把字符串转换成一定格式的日期,如把数据库中的日期或时间转换成自己想要的格式,JAVA中提供了SimpleDateFormat类能够实现,下面是Simple ...
- 离线服务器下docker的部署与应用
一分钟内形成docker的模糊概念 网上很多文章避免将docker与虚拟机混为一谈,但对于初学者来说,完全可以将docker当做一种虚拟机技术,只需要牢牢记住一点最重要的区别:docker依赖于物理机 ...
- Web | DOM基本操作
基本概念 文档对象模型 (DOM) 是HTML和XML文档的编程接口.它提供了对文档的结构化的表述,并定义了一种方式可以使程序对该结构进行访问,从而改变文档的结构,样式和内容.DOM 将文档解析为一个 ...
- Field userService in com.wuji.controller.UserController required a bean of type 'com.wuji.service.UserService' that could not be found
Field userService in com.wuji.controller.UserController required a bean of type 'com.wuji.service.Us ...
- solve the promble of VMware Workstation Ubuntu18.04 ethernet interface losting
$ ifconfig -aens33: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 00:**:**:**:**:** txqu ...
- MySQL->元数据[20180510]
MySQL元数据 Meta Data,一般是结构化数据(如存储在数据库里的数据,字段长度.类型.默认值等等).Meta Data就是描述数据的数据,在MySQL中描述有哪些数据库.哪些表.表有 ...
- js身份证校验
通过js实现对15位或者18位身份证格式校验: 通过调用idCardNoUtil.checkeIdCardNo(idCardNo)传入身份证号码,实现校验. var idCardNoUtil = { ...
- Laravel源码解析--看看Lumen到底比Laravel轻在哪里
在前面一篇<Laravel源码解析--Laravel生命周期详解>中我们利用xdebug详细了解了下Laravel一次请求中到底做了哪些处理.今天我们跟 Lumen 对比下,看看 Lume ...