NOI历年试题小结

NOI2014

NOI2015

NOI2016

优秀的拆分

95分平方方法很容易。

枚举被重复的串长,每隔串长划一个关键点,求关键点之间的相邻串的最长公共前/后缀。计算重复段区间加,用差分/前缀和处理。

周边:字符串;调和级数、字符串哈希、差分/前缀和

网格

答案最多为2。判断最多与周围两圈格子有关。不求AC

周边:观察性质

循环之美

首先根据题意写出一直变量之间的数论关系式,写出答案式,套用莫比乌斯反演,需要杜教筛。

周边:数论;莫比乌斯反演、杜教筛

区间

从位置角度思考,需要进行的操作是增加/减少区间,查询排名差距为m的最小长度差。显然不可行。

从区间角度思考,按长度顺序加入区间,用双指针扫描,问题变成区间加/减,求区间最大值。线段树维护。

周边:数据结构;线段树、双指针、离散化

国王饮水记

没有思路。

不妨设1号城市水位最低。先去掉使用次数的限制——可以得到从小到大依次单独与1号联通最优;加上限制——连通的一定是若干连续段。那么就可以动态规划。盲猜决策单调性,这也是没办法的事。

周边:动态规划;排序、决策单调性

可以手玩。学习zzq的技巧,写一个程序将语言转化得简单些。

NOI2017

整数

压位线段树大模拟,写起来mmp

周边:模拟;压位、线段树

蚯蚓排队

首先想到的是O(nq)的暴力。观察到询问串长非常小,那就把所有可能询问到的串直接哈希带走。

周边:字符串;哈希、桶

泳池

丝毫没有思路。

周边:动态规划;特征多项式

游戏

没有x图的时候是一个2-SET问题。

由于x图最多8个,可以枚举不用A车或不用B车化为2-SET。不枚举C车的原因是如果选了A车成立在不用B的情况出现了,选了B成立在不用A的情况出现。

周边:算法;枚举、2-SET

蔬菜

从网络流开始考虑。给蔬菜和天之间连边,后一天向前一天连边作为后一天没卖掉的,跑费用流。

模拟费用流。

周边:模拟费用流;贪心、数据结构

分身术

暴力吧,据说这题维护100层凸包。

周边:计算几何

NOI2018

归程

堆优化迪杰斯特拉+克鲁斯卡尔重构树,卡SPFA

周边:算法;最短路、贪心

冒泡排序

满足条件的序列最长下降子序列长度不超过2,不考虑初始字典序限制,dp,考虑在平面上的路径,枚举在哪个地方脱离限制。

周边:动态规划

你的名字

离线,把所有串连在一起求SA,用主席树查询问。或者可以SAM+线段树合并。

周边:字符串;SA

屠龙勇士

exgcd求逆,扩展中国剩余定理解方程组。

周边:数论;exgcd、exCRT

情报中心

给定路径端点建虚树,然后讨论,线段树合并维护信息。

周边:数据结构;虚树、线段树合并

多边形

什么东西啊,网上根本找不到题解

NOI2019

回家路线

斜率优化动态规划

周边:动态规划;决策单调性

机器人

暴力考虑区间Dp,f[l][r][x]表示区间l到r最大值为x的方案数,枚举最大值位置,记忆化搜索,可以得到可观的分数

周边:动态规划;区间Dp、记忆化搜索

序列

可以做费用流。

考虑动态规划,按a数组排序,分为两部分,前一段要么只选a,要么选ab,后一段要么不选要么选b要么选ab,前后分别Dp然后枚举分界。

也可以按a+b排序,则前缀是a、b、ab,后缀是a、b、空。

最后正解是六个堆。

周边:模拟费用流

弹跳

树套set。

周边:数据结构;树套树

斗主地

直接Dp

正解是期望的线性性还是二次然后用三个数插值。

周边:动态规划

I君的探险

会二分、整体二分就能得到可观分数。

有时间乱搞一搞也是有不少分的。

NOI2020

考过就退役了。

原文地址:https://www.cnblogs.com/wanghaoyu/p/NOI.html