首页 > 其他分享 >真题汇总

真题汇总

时间:2024-10-18 13:00:13浏览次数:5  
标签:pre 柱子 le 颜色 真题 汇总 times rt

NOIP2020 移球游戏

构造题

10pts:首先就是只有 \((2+1)\) 个柱子的情况(我模拟赛时没想到qwq)。

我们的目的是构造出两根上面都是颜色 \(1\) 和都是颜色 \(2\) 的柱子,然后将 \(2\) 号柱子上的 \(m\) 个分到这两根柱子上去。

这种情况两根上的东西一定就是原来 \(1\) 号的,那么第一步就是要将其分开。分开要腾出两个柱子,而 \(2\) 号柱子是满的,所以我们就可以把 \(2\) 号柱子当作垫脚的先放一部分到 \(3\) 号里去,这样 \(2\) 号就腾出位置来了。

具体的:若 1 中有 cnt 个颜色为 1 的,把 2 顶端的 cnt 个放到 3 号上去。再对 1 号进行出栈,颜色是 1 的全放到 2 号,颜色是 2 的全都放到 3 号。再将 2 号顶端的 cnt 个放回 1,3 号顶端的 m-cnt 个放回 1,3 号剩下垫脚的放回 2。再将 1 号顶端的 m-cnt 个颜色为 2 的放到 3。最后将 2 号的 m 个按颜色分到 1,3 上去。

tips:上面的都是废话,不如自己手模一下。

40pts:

策略就是对于每个规模为 \(n\) 的问题,将所有颜色为 \(n\) 的放到一个柱子上,缩小问题规模为 \(n-1\)。

一个想法:类似于两根柱子一样对于 \(i\) 和 \(n\) 两两在那边搞?不太行,因为颜色为 \(n\) 的个数不足 \(m\) 个,若放在那就会使得没有空的柱子可用。所以我们就要把所有颜色为 \(n\) 的球移到所有柱子上方。发现 10pts 中的转移中就有那么一种状态,即颜色为 \(n\) 的都在上面,颜色不为 \(n\) 的都在下面。但是我们拿来垫脚的那根柱子上是不能有颜色 \(n\) 的,那么一开始优先处理出这个用来垫脚的柱子即可。记录 \(id\),将柱子的角色转化用 swap id 解决,这样就避免了将球从一个柱子全都移到另一个空柱子上的浪费。复杂度为 \(O(t \times n^2m)\),\(t\) 为常数。

其实这种方法是可以过的,因为每次问题规模都在减小,奈何人傻常数大(其实可以加上一些策略的化简可以通过,由于我这里的每个步骤都是照搬 10pts 中的,所以有 5~6 的大常数)。

100pts:

其实也是构造题的套路:分治。40pts 中我们每次处理一个颜色的问题,瓶颈在于要把每根柱子的目标颜色移到该柱子上方。这是由于个数不足不能独立操作造成的。但是如果对颜色进行区分,设当前处理区间为 \([l,r]\),颜色编号为 \([l,mid]\) 的类比为 \(1\),编号为 \([mid+1,r]\) 的类比为 \(2\)。同样对于柱子的编号 \([l,mid]\) 的为左边柱子,\([mid+1,r]\) 的为右边柱子。对于一个左边柱子和一个右边柱子,无论如何我们都可以弄出一个都是颜色 \(1\) 的柱子或者一个都是颜色 \(2\) 的柱子出来。每一次操作都会完成一个柱子,那么对于规模为 \(n\) 的问题我们就可以在 \(n\) 次操作内使得左边柱子上的颜色编号都为 \(1\),右边都为 \(2\),递归解决即可。复杂度 \(O(t \times n m \log n)\)。

CSP-S2019 树的重心

感觉这道题很典。

40 分就是枚举那条边断了,跑两棵树的重心即可。

考虑树的重心的两种求法:一种是找出最大儿子最小的那个点,这偏向于遍历+统计的过程;另一种就是题面中提到的 \(\text{max son} \le \frac{siz}{2}\)。这确是在树的基本形态不变的情况下可以直接求的。那么显然我们要充分利用后者。设点 \(i\) 的 \(\text{max son}\) 为 \(g_i\)。

我们令原树的重心为 \(rt\),那么对于一个断边后成为重心的节点 \(x(x \not= rt)\) 而言,有性质:断的这条边不会在 \(x\) 的子树里。感性理解就是若 \(x\) 中的边断了,重心 \(rt\) 就会远离 \(x\) 而不是靠近并成为 \(x\)。似乎枚举边后我们没有一个快速的统计方式去进行寻找和统计,那就不妨从“一个点被统计出发”考虑断掉的子树大小为多少会使得该点成为重心。

设断掉的子树大小为 \(S\),方向明了可以推知:

  1. \(x\) 不为 \(rt\),\(2 \times g_x \le n-S,2 \times (n-S-siz_x) \le n-S\),可得知 \(S \in [n-2siz_x,n-2g_x]\)。所以 \(x\) 成为重心的条件为 \(S \in [n-2siz_x,n-2g_x] \land \text{S不在x子树中}\)。
  2. \(x\) 为 \(rt\)(若 \(rt\) 在断边后仍然为重心),设最大子树为 \(mx\),次大为 \(se\):
    1. 在 \(mx\) 子树中断的边:\(2 \times siz_{se} \le n-S\);
    2. 在其他子树中断的边:\(2 \times siz_{mx} \le n-S\);

以上使用树状数组维护。注意其中如何挖去子树中的贡献:进去一次出来一次之差。

NOIP2020 字符串匹配

枚举 \((AB)\),调和级数时间复杂度内利用前缀和 \(O(n \log n) + O(n C)\) 统计答案。有些卡常且不能用模哈希。
这一做法出来的有些晚,主要因为思考的时候从循环节出发直接思考算法而不是基于问题本身开始考虑。

发现在 \((AB)\) 向后扩展的过程中,对于 \(C = (A^iT)\),\(i\) 为奇数或 \(i\) 为偶数时值时一样的。所以求出扩展的个数即可 \(O(1)\) 统计。思考如何统计个数。倍增与调和级数无异,常数小一些而已。发现 KMP 中的最小循环节 \(i-nxt_i\),可求出对于串 \(i\) 由最小循环节 \(j\) 组成,那么只要求出最小循环节 \(j\) 往右的可以向右扩展的最右处即可。注意预处理中的卡常。

CSP-S2019 划分

贪心好题!

考虑 \(f_{i,j}\) 表示前 \(i\) 个数,最后一段为 \([j,i]\) 的最小价值。这会有 36pts。

最后一段长度越小越优。证明:对于长度确定的 \(a + b = len, a \le b\),那么 \(b\) 越小 \(a^2 + b^2\) 越小(由均值不等式)。

记录 \(d_i\) 为 \(i\) 结尾最优情况下最后一段的长度。\(f[i] \gets f[j] + (pre[i] - pre[j])^2\) 时 \(pre[i]-pre[j] \ge d[j]\),即 \(pre[i] \ge pre[j]+d[j]\)。我们维护符合条件最大的 \(j\) 即可。

注意数据范围,最后一个 sub 要开 __int128。

标签:pre,柱子,le,颜色,真题,汇总,times,rt
From: https://www.cnblogs.com/fight-for-humanity/p/18474023

相关文章

  • 大厂面试真题-说说jdk1.7和1.8的hashmap的区别以及各自的问题
    JDK1.7和JDK1.8中的HashMap存在显著的区别,并且各自存在一些问题。以下是对两者的详细对比及问题分析:一、区别底层数据结构:JDK1.7:HashMap的底层结构是由数组(也被称为“位桶”)和链表构成。当hash冲突时,不同的key映射到数组的同一位置,则形成链表。JDK1.8:HashMap的底层结构......
  • 图论day64 :最短路径算法 | SPFA(Bellman_ford的队列优化版)、城市间货物运输 I、Ⅱ、Ⅲ
    图论day64:最短路径算法|SPFA(Bellman_ford的队列优化版)、94.城市间货物运输I(卡码网)【SPFA算法+邻接表优化】、95.城市间货物运输II(判断负权回路)、96.城市间货物运输III【已知有负权回路,该如何计算】、Bellman_ford算法思维导图汇总SPFA(Bellman_ford的队列优化版)94......
  • 面试汇总-测试用例设计
    微信发红包UI1、发红包的界面有无错别字2、发红包的界面是否排版合理3、发红包的界面颜色搭配是否合理功能测试1、红包金额输入框是否只能输入数字和小数,小数位数是否有限制2、红包个数输入框是否只能输入数字3、红包金额框的最大输入数字是否最多200,除特殊节假日最高输入500;......
  • 真题练习4-Excel电子表格-全国计算机等级考试一级计算机基础及MS Office应用考试【汪
    题目请根据题目要求,完成下列操作:注意:以下的文件必须保存在考生文件夹下1.打开工作簿文件EXCEL.XLSX。(1)将sheet1工作表的A1:E1单元格合并为一个单元格,内容水平居中;计算实测值与预测值之间的误差的绝对值放置于“误差(绝对值)”列;评估“预测准确度”列,评估规则为:“误差”低于或......
  • 华为OD机试真题-最佳种树距离-2024年OD统一考试(E卷)
    最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客     每一题都含有详细的解题思路和代码注释,精编c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。题目描述按照环保公司要求,小明......
  • ABAP 小技巧汇总集合
    文章目录1.另一种方式实现事务码SE16里的结果集修改解决方案2.用ABAP生成二维码QRCode3.ABAP文档生成工具4.SAPS/4HANA使用ABAP代码获得生产订单的状态5.SAPS/4HANA使用ABAP获得生产订单的状态6.SM37作业条目的存储表7.用ABAP代码读取S/4HANA生......
  • 【勒索病毒】解密工具汇总
    原创橘猫学安全这是一个勒索病毒解密工具收集汇总的github项目,收集了数十款不同勒索病毒解密工具,解密工具多数由安全公司发布,所以安全性也有一定保障。最近应急服务的时候,总是在工控用户方碰上各种勒索病毒,感染工控系统的计算机,以下为日常搜集的勒索病毒解密工具的汇总。希望......
  • 前端开发者必备:学习资源与社区汇总
    在快速变化的前端领域,拥有可靠的学习资源和交流社区对于开发者来说至关重要。以下是一份整理的前端学习资源与社区汇总,希望能为你的前端之旅提供助力。前端学习资源推荐基础学习资源MDNWebDocs网址:https://developer.mozilla.org/描述:Mozilla提供的前端技术文档,内容全面......
  • 180+ 优质YouTube频道推荐:数据科学、机器学习、人工智能等领域学习资源汇总
    yt-channels-DS-AI-ML-CS180+优质YouTube频道推荐:数据科学、机器学习、人工智能等领域学习资源汇总在这个信息爆炸的时代,YouTube已经成为许多人学习新知识的重要平台。特别是在数据科学、机器学习、人工智能等热门技术领域,有大量优质的教学内容。本文整理了180多个高质量的Y......
  • CVPR 2024论文与代码汇总:计算机视觉领域最新研究进展
    CVPR2024论文与代码汇总:计算机视觉领域最新研究进展计算机视觉与模式识别会议(CVPR)作为计算机视觉领域最具影响力的学术会议之一,每年都会吸引全球顶尖研究机构和企业提交大量高质量论文。CVPR2024即将于今年6月在美国西雅图举行,目前已经公布了部分接收论文名单。本文将对CV......