• NOIP 考前研究


    NOIP 2017 试题研究

    D1T1 小凯的疑惑 (45 min)

    看到题面,大概是推数学公式。

    先打暴力表,观察 (a,b)(n) 的关系。猜想 (a×b−a−b)

    引理:对于正整数 (p , q) 满足 (gcd(p, q) = 1), 使得 (px + qy = n) 无非负整数解的最大正整数 (n)(pq - p - q).

    使用反证法证明,即假设存在正整数 (x)(y) 使得 (px + qy = pq - p - q),证明矛盾。期望得分 100 分。

    没办法一眼望穿?观察到答案更接进于 (a imes b),考虑从 (a imes b) 到 1 递推。期望得分 70 分。

    D1T2 时间复杂度 (1 h)

    一眼望穿,模拟 + 字符串 + 栈结构。

    然后死在模拟的过程中……期望得分 0 分。

    绝对不能没把整个题目推完就开始写。先在草稿纸上把所有要注意的点写出来,列出清单。

    在草稿纸上列出模拟的所有标记变量的含义和作用。在草稿纸上写出大致代码层结构,标出特判和标记变量作用的位置。(其实代码大致就出来了。)

    上机实现。期望得分 100 分。

    此类题目(模拟 + 字符串)严重考察细心和耐心。如果你的思路清晰,代码严谨工整,就不会过不去样例……

    D1T3 逛公园 (45 min)

    DP + 拓扑序 + 最短路 or 搜索 (记忆化)

    观察题目。啥都看不出来?先打暴力。

    容易发现,Day 1 还没有考 DP。注意到 (Kle 50),猜测这是一个与 (k) 有关的 DP。

    特殊情况 1:当 (K=0) 时,最短路计数!

    最短路计数:

    Dijkstra 堆优化 或 SPFA(死了)。

    定义一个新变量数组 cntcnt[S]=1。更新边长的时候如果大于号就覆盖(cnt[to[i]]=cnt[x]),相等的话(即有相同最短路径)就相加(cnt[to[i]]+=cnt[x])。无边权即边权为 1。

    注意模法。实现难度 [普及+/提高]。

    期望得分 30 分。

    特殊情况 2:然后考虑 没有 0 边 的情况。构造 DP 求解。写不出来……期望得分 30 分。

    然后回过头检查 T1、T2 的代码。千万不要放空!放个 rand()%mod 也行啊……要爱惜分数。

    D2T1 奶酪 (45 min)

    观察到本题适合使用并查集。(NOIP 考点之一。)

    距离要预处理。

    实现难度 [普及/提高-]。期望得分 100 分。

    D2T2 宝藏 (1 h 30 min)

    状压 DP。思路难想!期望骗分 0 分。

    写不出来状压 DP……显然要考虑部分分。DFS + 剪枝!暴搜算法的时间复杂度是 (O()玄学())。不要忘记低级算法的重要性,暴搜 AC 什么的大有人在。期望骗分 ?? 分。

    贪心?如果想出来一个比较可行的局部最优解,带入 模拟退火算法 计算!期望骗分 0~100 分。(太玄了……)

    D2T3 列队 (45 min)

    标算是树状数组。想不到……想到了也不会写……

    考虑部分分采用离散化思想。

    对于 (x_i=1) 的情况,转化为:

    对于一个序列,支持操作 (1) 删除第 (k) 个元素;(2) 在末尾添加一个元素。

    尝试用树状数组实现。

    维护一个 01 序列,第 (i) 位上是 0 表示这个位置上的数已经被删除了或者还没有被插入,第 (i) 位上是 1 表示这一位上的数没有被删除。

    那么删除操作就是 1 → 0,插入操作就是 0 → 1。第 (k) 个元素就是前缀和为 (k) 的位置。树状数组二分。

    PinkRabbit

    其他就完全不会了。期望得分 30 分。(模拟得分)

    总结

    乐观估计为 360+?? 分。可见去年的难度还是很高的。如果暴搜写得给力能拿 400 分,如果字符串模拟炸了,那就省一无望了。(毕竟去年 FJ 省一线 300 分。复旦自招线 360 分……)

    如何发挥超常正常?首先该拿的分数坚决不能丢掉。字符串模拟、暴搜剪枝,还有最短路和并查集的板子,一定要写出来。DP 能推的尽量推,部分分能骗的尽量骗……

    明明所有考点都是 NOIP 范围内的,明明我也会 DAG 上 DP、状压 DP、树状数组……可见还是学艺不精,有待提高。

    括号中标记的是完成核心代码的理论时间。实际上,一旦陷入 bug 的泥潭就很难出去了……

    祝 NOIP 2018 RP ( ightarrowinfty)

    NOIP2016 试题研究

    D1T1 玩具谜题 (30 min)

    超级水的 模拟。期望得分 100 分。送分题分数绝对不能丢!……

    D1T2 天天爱跑步 (1 h)

    部分分骗一骗。直接暴力拿 25 分,其余点特判骗分。

    正解 LCA + 桶 + 差分。不会写……基本的 LCA 要复习一下。

    D1T3 换教室 (1 h 30 min)

    DP(dp(i,j,0/1)) 表示走完前 (i) 个教室, 换了 (j) 次,对于第 (j) 次选择换 ((0)) 与不换 ((1)) 的最优方案。然后就是推公式的过程。绝对可以推很久。期望得分 0~100 分。(想太多

    D2T1 组合数问题 (45 min)

    给定 (n,m)(k),对于所有的 (0leq ileq n,0leq jleq minleft(i, m ight)) 有多少对 ((i,j)) 满足 (C_i^j)(k) 的倍数。对于 100% 的数据,(n,mle 2000, kle 21), 数据组数 (Tle 10^4)

    先打表 (C_n^m=C_{n-1}^{m-1}+C_{n-1}^m) (杨辉三角),特别地,(C_n^0=C_n^n=1). 发现速度捉急,怎么办?

    二维前缀和 (sum(n,m)=sum(n-1,m)+sum(n,m-1)-sum(n-1,m-1)).

    然后 DP 统计答案。期望得分 100 分。

    D2T2 蚯蚓 (1 h)

    蛐蛐国里现在共有 (n) 只蚯蚓((n) 为正整数)。每只蚯蚓拥有长度,我们设第 (i) 只蚯蚓的长度为 (a_i) ((i=1,2,dots,n)),并保证所有的长度都是非负整数(即:可能存在长度为 (0) 的蚯蚓)。

    每一秒,神刀手会在所有的蚯蚓中,准确地找到最长的那一只(如有多个则任选一个)将其切成两半。神刀手切开蚯蚓的位置由常数 (p)(是满足 (0 < p < 1) 的有理数)决定,设这只蚯蚓长度为 (x),神刀手会将其切成两只长度分别为 (lfloor px floor)(x - lfloor px floor) 的蚯蚓。特殊地,如果这两个数的其中一个等于 (0),则这个长度为 (0) 的蚯蚓也会被保留。此外,除了刚刚产生的两只新蚯蚓,其余蚯蚓的长度都会增加 (q)(是一个非负整常数)。

    蛐蛐国王希望知道 (m) 秒内的战况。具体来说,他希望知道:

    • (m) 秒内,每一秒被切断的蚯蚓被切断前的长度(有 (m) 个数);
    • (m) 秒后,所有蚯蚓的长度(有 (n + m) 个数)。

    第一行输出 (displaystyleleftlfloor frac{m}{t} ight floor) 个整数,按时间顺序,依次输出第 (t) 秒,第 (2t) 秒,第 (3t) 秒,…… 被切断蚯蚓(在被切断前)的长度。

    第二行输出 (displaystyleleftlfloor frac{n+m}{t} ight floor)个整数,输出 (m) 秒后蚯蚓的长度;需要按从大到小的顺序,依次输出排名第 (t),第 (2t),第 (3t),…… 的长度。

    (1 leq n leq 10^5)(0 leq m leq 7 imes 10^6)(0 < u < v leq 10^9)(0 leq q leq 200)(1 leq t leq 71)(0 leq a_i leq 10^8)

    直接用(或 STL 优先队列)记录每次切的蚯蚓。期望得分 80 分。

    如果观察到本题隐含的单调性,即先被切掉的蚯蚓分成的蚯蚓一定比后切掉的蚯蚓分成的蚯蚓大,则根本不需要堆来维护:由一个堆变成三个队列。(详见 Link link

    思维量相当大,100 分看来是难了……

    D2T3 愤怒的小鸟 (1 h)

    本题 (1le n≤18)暴搜 or 状压 DP

    暴搜骗大量部分分!

    状压 DP:(f(imid line(j,k))=min{f(imid line(j,k)),f(i)+1}). 真的想出来就可以 100 分了。

    总结

    NOIP 2016 看上去真的挺难!考试内容都是比较高级的算法,又有较高的思维难度。如果 NOIP 2018 也这样考,千万不能灰心啊……注意到题目都给出了极好看的部分分,至少把部分分拿走,再绞尽脑汁想正解。

  • 相关阅读:
    Keras的安装与配置
    Hive实际应用小结
    SparkMLlib-----GMM算法
    ---------菜单目录---------
    Linux(Centos)下使用Docker安装 Portainer-ce(HTTPS支持,docker容器管理软件)
    Linux(Centos)下 docker-ce安装配置(TLS认证)、docker-compose安装与配置
    Centos8 安装进不了图形化安装界面,光标一直在闪解决方案
    开源镜像库
    vue模板项目 推荐项目 vue-element-admin
    Linux 服务器 网卡 流量统计 监控 (vnstat)最新版本安装使用
  • 原文地址:https://www.cnblogs.com/greyqz/p/9902161.html
Copyright © 2020-2023  润新知