摘要: 纪念模拟考考挂。 思路 首先二分查找出当前点往后走最远能去哪个点,当前点为 \(i\),记最远能去的那个点为 \(nt_i\)。 考虑建一棵树,将 \(nt_i\) 设为 \(i\) 点的父节点。 暴力的话直接从当前点往上找,找到目标节点看几次就好了。 但显然是过不了的。 考虑使用倍增优化。 设 \ 阅读全文
posted @ 2024-01-15 22:21 Xu_dh 阅读(30) 评论(0) 推荐(0)
摘要: 思路 因为数据较大,使用字符串读入。 考虑使用贪心。 先统计出当前数码之和。然后从低位往高位枚举,看一下把当前位改了之后是否小于等于 \(s\)。如果小于的话,则统计出把当前位往后所有位都改为 0,\(k\) 为多少,求出的 \(k\) 就是最优解。 说明一下为什么要从低位往高位枚举,这样如果成功改 阅读全文
posted @ 2024-01-15 22:20 Xu_dh 阅读(21) 评论(0) 推荐(0)
摘要: 怎么前三题都是思维题啊。 思路 总共有三个操作,先不看翻转操作。 如果你右移 \(x\) 位之后,左移 \(x\) 位,那么就相当于没有操作。这个应该是很好理解的。 我们根据上面的结论,能得出以下代码。 if(op==">"){ cin>>x; f+=x; } else if(op=="<"){ c 阅读全文
posted @ 2024-01-15 22:20 Xu_dh 阅读(23) 评论(0) 推荐(0)
摘要: 迄今为止我认为写的最详细的一篇。 考虑二分。 思路 我们把两盏灯分别命名为 \(A\) 和 \(B\)。 如何走回家? 走回家有四种走法。 最开始在 \(A\) 所照的区域内,家也在 \(A\) 所照的区域内,这样就可以直接走到家。 最开始在 \(A\) 所照的区域内,家在 \(B\) 所照的区域内 阅读全文
posted @ 2023-12-09 22:55 Xu_dh 阅读(12) 评论(0) 推荐(0)
摘要: 考察了小学奥数知识,不会的请先去学习一下相遇与追及。 思路 两个人相遇的点一定是有周期性的,我们可以先算出一个周期会走多远,而这个距离是两人速度的最小公倍数。 接着需分情况讨论。 如果两人是同向,则为追及,需用距离除以一人的速度减去距离除以另一人的速度。需要取绝对值。 如果两人是反向,则为相遇,需用 阅读全文
posted @ 2023-11-24 22:44 Xu_dh 阅读(18) 评论(0) 推荐(0)
摘要: 思路 我写的好像是动规的做法。 设 \(f_{i,j}\) 表示第 \(i\) 步 \(j\) 个点是否可以走到,值要么为 \(1\),要么为 \(0\)。最多走 \(n\) 步,因为总共只有 \(n\) 个点,每一步都肯定会多延伸出一个点,要不然就重复计算。 不难得出转移公式: \(f_{i+1, 阅读全文
posted @ 2023-11-24 22:44 Xu_dh 阅读(15) 评论(0) 推荐(0)
摘要: 简单模拟题。 思路 枚举每一个地毯,因为后面的会覆盖前面的,所以从正序枚举。如果要求的点的坐标在当前地毯上,则将答案赋值为当前地毯编号。 最后输出答案。 那如果这个点没有地毯呢?答案初始设为 \(-1\),这样没有地毯覆盖的话,答案不会改变,这样输出答案就会是 \(-1\)。 注意: 记得赋初始值。 阅读全文
posted @ 2023-11-24 22:43 Xu_dh 阅读(11) 评论(0) 推荐(0)
摘要: 思路 设 \(dp_{i,j}\) 表示第 \(i\) 行 \(j\) 列卒走到这里有多少种方式。 卒是可以向右和下走,所以到这个点只能从左或上来,不难得出转移公式:\(dp_{i,j} = dp_{i-1,j}+dp_{i,j-1}\)。 如果马在这个点上或者说马能到这个点上,那么卒不能到这个点, 阅读全文
posted @ 2023-11-24 22:43 Xu_dh 阅读(34) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2023-11-24 22:42 Xu_dh 阅读(0) 评论(0) 推荐(0)
摘要: 前置知识 最短路。 思路 这就是一道很简单的最短路板子,太良心了,用堆优化的 Dijkstra 就能过。相信大家都会这个,我就不介绍了。 AC CODE #include<bits/stdc++.h> using namespace std; int dis[100005],n,m,s,t,vis[ 阅读全文
posted @ 2023-11-19 09:58 Xu_dh 阅读(22) 评论(0) 推荐(0)