zoukankan      html  css  js  c++  java
  • NOIP2018出征策

    蒟蒻的风之旅人即将退役,现在分享一下退休前的故事

    首先,经过这么多时间的划水训练,我成功从一个萌新变成了一个蒟蒻。我学会了各种奇怪玄学的算法,比如说昨天老师讲的NOIP第三题通用的算法,叫做XG算法,也就是通过各种不同的操作使得程序总体分数变高的很实用的算法,通俗地讲,就是瞎搞算法。

    好了不说废话,开始我的表演

    1. 不可能用朴素算法的,这辈子都不可能写朴素暴力的。

    首先最重要的是背各种算法的优化模板。例如线段树可以写成ZKW线段树,也就是非递归线段树来优化,最短路可以套上CLZ最小环来优化,等等。但是有的时候需要我们需要对程序先反向优化,这样才能再对程序进行正面优化。例如我们这次长沙集训第七天的T1 Adjoin,推出来的最朴素的公式应该是这个:

    [f[i]=egin{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擦肩
    屏幕在深夜微微发亮 我心在考场

  • 相关阅读:
    接口调用实现类&& 为什么Autowired定义在接口上
    getSuperclass与getGenericSuperclass区别
    Error resolving template “pages”, template might not exist or might not be accessible by any of the configured Template Resolver 或者 springboot使用thymeleaf时报html没有结束标签
    dcm4che-core导包失败! mvn pom文件导包总是失败
    使用IDEA springboot 如何通过mybatis-generator自动生成mapper dao model
    《剑指offer》第三十八题:字符串的排列
    《剑指offer》第三十七题:序列化二叉树
    《剑指offer》第三十六题:二叉搜索树与双向链表
    《剑指offer》第三十五题:复杂链表的复制
    《剑指offer》第三十四题:二叉树中和为某一值的路径
  • 原文地址:https://www.cnblogs.com/Chen574118090/p/9921912.html
Copyright © 2011-2022 走看看