当前位置: 首页 > news >正文

?模拟赛 赛后总结

好像是教练凑了两套mx的j组模拟赛的CD题给我们做的。

题目在这里!


A 鲁的石板

\(n=1\) 的时候特判即可。

对于最后一块石板,只计算到它为止相邻颜色不相同的方案是很简单的,到第 \(n\) 块的方案数为 \(a_{n}=m \times (m-1)^{n-1}\) .再加上首尾不同的限制,只要减去首尾相同的方案数就好了。要求首尾相同的方案数,只要求出前一位的答案 \(a_{n-1}\)
即可。因为第 \(n-1\) 位肯定与第 \(1\) 位不同,后一位就可以直接填和首位相同的颜色。
于是求出了递推式 \(a_n=m \times (m-1)^{n-1}-a_{n-1}\) .后面 \(n \leq 10^9\) 的实在推不出来了,看比赛一共就三个小时,就先看后面的了。做完了之后又回来看了一眼,还是没做出来。

正解是在递推式的基础上延深的。将递推式的第一项提出一个 \(m \times (m-1)^{n-1}\) 变成 \(a_n=(m-1)^n+(m-1)^{n-1}-a_{n-1}\) 后移项得 \(a_n-(m-1)^n=-[a_{n-1}-(m-1)^{n-1}]\) .令 \(b_n=a_n-(m-1)^n\) ,代入可得 \(b_n=-b_{n-1}\) ,所以 \(b\) 序列是一个首项为 \(b_2\) ,公比为 \(-1\) 的等比数列。只有两块石板的答案很好求,则 \(b_2\) 已知。根据等比数列的公式求出 \(b_n=b_2 \times (-1)^{n-2}\) ,就能得到 \(a_n\) 了。

\(a_n=(-1)^{n-2} \times (m-1)+(m-1)^n\) .


B 鲁星救援

分为两部分,先求出鬼才逃向地道的最短路,再求 Luke 走到这条最短路上任意一点的最小步数。

第二部分一个 bfs 就能求出来了。第一部分只要修改一下偏移数组,让它按题目给出的顺序去拓展进行 bfs ,就能求出来编码数字最小的路。中间记录一下前驱,方便标记最短路。


C 游览计划

这不是 22 年 S 组的 T1 吗,去年还拿这套题打了模拟赛,那天打得蛮好的开心了好几天。当时这个题没 A ,对这个题的贪心策略印象很深,记得当时还感叹怎么会有人能想出来这种解法的,现在看来其实也还好hhh。

对每个点求一次最短路,保存离它最远的三个点。然后枚举中转点 \(b,c\) 再各自枚举离得最远的三个点,与 \(b\) 相连的就是 \(a\) ,与 \(c\) 相连的就是 \(d\) ,然后就能得出从 \(a\)\(d\) 的路径长度了。

为什么要保留三个最远的点呢?因为在枚举 \(a\)\(c\) 的时候有可能会与 \(b,c\) 重复,还有可能 \(a\)\(d\) 是相同的,枚举前三远的点就可以保证在存在的情况下一定能找到以 \(b\)\(c\) 为中转点的情况下的最长路径了。

很高兴我去年做完这道题后竟然还能记住它的解法。感觉现在好多以前能做出来的题现在不会做了。


D 贪吃蛇

0(19).
强烈谴责……算了。输入描述和样例不符,大家都按样例来的,但数据是按输入描述来的。我还好,有人因此痛失 100pts .但我也是因为一些很唐的错误挂掉的。

考虑到蛇身一个很重要的性质就是它的身体是一直增长的,所以可以把它的结构存下来,查询的时候直接查找该位置对应蛇身的位置。然后我这个唐诗就用了字符串保存,然而没有一句话说明构成蛇身的值是个位数。改掉这个之后就没有正确性的问题了,但是 T 了。然后发现是描述操作的字符我用了 cin 输入,然而最多有 \(10^6\) 次输入,改成了 scanf 就过了。

保存蛇头和蛇尾的坐标,每次移动记录一下蛇头去的下一个位置,这样就可以让蛇尾跟着蛇的行动路线更改了。分别记录蛇头和蛇尾移动的总次数,蛇头每到一个点就用蛇头移动的次数标记,查询时和蛇尾移动的次数做个减法就能求出现在蛇身的哪个不喂在这个位置,输出即可。

丢分丢得很莫名其妙我想打自己。最可怕的是用字符串存非个位数的事情我还真的干出来过很多次了,以后一定小心。至于输入字符我也不知道咋整的,从一开始就习惯用 cin ,从今天起改掉这个习惯。


总而言之言而总之,如果不算唐诗错误的话应该是还可以吧,除了 A 其他的我都早早做完了。数学题我一直很不敏感,真糟糕。以后再犯这些诡异的错误的话我真的要罚自己去学校操场跑圈了。

http://www.hskmm.com/?act=detail&tid=16214

相关文章:

  • 日志|动态规划|最长回文子串|最长公共子序列|HTML CSS
  • Java 字段命名避坑: success和isSuccess
  • OTA升级时软件异常复位问题分析
  • Atcoder Educational DP Contest 做题记录
  • 20250924
  • 跨端边云时序数据管理新范式:Apache IoTDB 的 DB+AI 融合之道 - 实践
  • 《Real-Time Rendering》第二章 图形渲染管线
  • 放弃Unity后,我为什么选择了Unigine?
  • PHP 与 Java 的终极对比:2025年,开发者该如何选择? - 详解
  • 题单63——流程控制
  • 银行同业存单的信用等级
  • 软件技术基础第一次作业
  • 2025XDOJ个人题解——写在前面
  • 适合电子纸屏幕的简易象棋打谱程序
  • 0924
  • java_string比较中的细节
  • 扫描线学习笔记
  • go-reids
  • AI完美声音克隆及情绪控制,与真人无异,Lark下载介绍
  • WSL,适用于 Linux 的 Windows 子系统
  • 9-24
  • 代码随想录算法训练营第八天 |344.反转字符串、541. 反转字符串II、LCR 122. 路径加密
  • 9/24
  • 安装与卸载JDK8
  • mysql慢sql配置
  • Linux zdb -C (zfs Debugger调试器)
  • 从零开始实现简易版Netty(八) MyNetty 实现Small规格的池化内存分配
  • 测试脚本
  • 自动化测试脚本
  • 解题报告-字符串(str.*)