摘要: 简单模拟题。 思路 枚举每一个地毯,因为后面的会覆盖前面的,所以从正序枚举。如果要求的点的坐标在当前地毯上,则将答案赋值为当前地毯编号。 最后输出答案。 那如果这个点没有地毯呢?答案初始设为 \(-1\),这样没有地毯覆盖的话,答案不会改变,这样输出答案就会是 \(-1\)。 注意: 记得赋初始值。 阅读全文
posted @ 2024-01-15 22:24 Xu_dh 阅读(35) 评论(0) 推荐(0)
摘要: 思路 设 \(dp_{i,j}\) 表示第 \(i\) 行 \(j\) 列卒走到这里有多少种方式。 卒是可以向右和下走,所以到这个点只能从左或上来,不难得出转移公式:\(dp_{i,j} = dp_{i-1,j}+dp_{i,j-1}\)。 如果马在这个点上或者说马能到这个点上,那么卒不能到这个点, 阅读全文
posted @ 2024-01-15 22:24 Xu_dh 阅读(20) 评论(0) 推荐(0)
摘要: 这题在赛场是卡了我好久。 思路 首先,这些人是可以在非整数时间相遇的。 拿样例来说: 数字是速度,字母是我命名的编号。 为什么点 \(D\) 不能和点 \(A\) 在 \((1,1)\) 相遇呢。 因为他们到达的时间不一样。 而点 \(E\) 和点 \(B\) 能在 \((2,2)\) 相遇因为他们 阅读全文
posted @ 2024-01-15 22:23 Xu_dh 阅读(28) 评论(0) 推荐(0)
摘要: 思路 按照提议模拟,枚举正方形起始点,然后再计算次正方形爆破价值,结果肯定是正确的,但是时间上会爆掉。 考虑优化。优化什么地方呢? 正方形的爆破价值计算是可以优化的。 用二维前缀和预处理。假设现在位置为 \((x,y)\),\(a_{i,j}\) 表示 \((i,j)\) 的价值,那么: \[s_{ 阅读全文
posted @ 2024-01-15 22:23 Xu_dh 阅读(29) 评论(0) 推荐(0)
摘要: 思路 依次枚举每一个黑色点,然后一枚举到的点为勾最靠下的那个点,如图种红色圈的部分。 然后搜索左上角和右上角,判断是否合法,即连续格子长度符合要求。 因为他的连续格子长度不一定是 \(d\),而长度越长是对其他勾没有影响,而覆盖的越多一定不或更差,所以我们就想要这个连续格子长度尽量长。而两边长度需要 阅读全文
posted @ 2024-01-15 22:22 Xu_dh 阅读(64) 评论(0) 推荐(0)
摘要: 思路 \([i,j]\) 之间所有数所用的短竖线数量要想等,那么 \(i\) 和 \(i+1\) 一定要相等。 分两种情况: 如果 \(i+1\) 不进位。 这意味着 \(i\) 和 \(i+1\) 所用短竖线唯一可能产生变化的是个位。我们设 \(i\) 的个位是 \(x\),\(i+1\) 的个位 阅读全文
posted @ 2024-01-15 22:22 Xu_dh 阅读(27) 评论(0) 推荐(0)
摘要: 纪念模拟考考挂。 思路 首先二分查找出当前点往后走最远能去哪个点,当前点为 \(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)