摘要: 谁没事手造魔法方向数组啊 正解: 题目上说最少使用几次魔法,因此一定是正常上下左右移动的优先级更高。 bfs 的特点就是会先算队首,这也就意味着队首的优先级更高。 从队首入队,需要使用 deque。此题中的 step 数组用于记录到当前点用了多少次魔法。 #include <bits/stdc++. 阅读全文
posted @ 2024-11-23 16:11 KukCair 阅读(15) 评论(0) 推荐(0)
摘要: CF644B Processing Queries 基本思路 模拟题。 对于每个工作申请,队列有如下两种操作: 首先,将 \(\leq\) 当前开始时间(即 \(t_i\))的所有操作弹出。 接下来有两种选择: 当队列已满,直接输出 -1。 当队列未满,更新结束时间并入队,输出新结束时间。 代码实现 阅读全文
posted @ 2024-11-23 16:10 KukCair 阅读(23) 评论(0) 推荐(0)
摘要: 基本思路 贪就完了。 首先要明确的是,在任何时刻都须保证机器人之间的距离最近。 因此,当某一时刻一个机器人的横坐标(或纵坐标)小于另一个机器人时,需要增加横坐标(或纵坐标);横坐标(或纵坐标)大于另一个机器人时,需要减少横坐标(或纵坐标)。 另外,题目中给到“都分配给两个机器人”这一条件,因此不能使 阅读全文
posted @ 2024-11-23 16:10 KukCair 阅读(20) 评论(0) 推荐(0)
摘要: 基本思路 设 \(dp_{i,j}\) 为第 \(i\) 天时在第 \(j\) 个小屋的方案数,\(r_j\) 为第 \(j\) 个小屋共有多少条路连接(即 \(s_j+l_j\))。 易得转移方程为 \[dp_{i,j} = \sum_{k=1}^{m}dp_{i-1,k} \cdot (r_j\ 阅读全文
posted @ 2024-11-23 16:09 KukCair 阅读(57) 评论(0) 推荐(0)
摘要: 8.12 [ARC159B] GCD Subtraction 题意:没必要讲,就是题面。 按题目直接模拟会超时,考虑优化。 发现在 \(a,b\) 互质时特别慢,每次只能减一,因此应将减一的操作合并。 设会减 \(x\) 次一,则 \(\gcd(a-x,b-x) = c (c \ne 1)\)。 则 阅读全文
posted @ 2024-11-23 16:08 KukCair 阅读(8) 评论(0) 推荐(0)
摘要: 学语文学的。 阅读全文
posted @ 2024-11-23 16:07 KukCair 阅读(38) 评论(0) 推荐(0)
摘要: 有三种可能的假话:编号 \(> n\);自己吃自己;互吃。 使用扩展域并查集(种类并查集)。 code: #include <bits/stdc++.h> using namespace std; int n, m, c, t, F[150005]; int find(int x){ if(F[x] 阅读全文
posted @ 2024-11-23 16:07 KukCair 阅读(21) 评论(0) 推荐(0)
摘要: Poooooooookererererererer Waaaaaaaaaatererererererer 阅读全文
posted @ 2024-11-23 11:41 KukCair 阅读(38) 评论(0) 推荐(0)
摘要: 一、寻找连通块 1. 基本思路 找到一个未被走过的点,以这个点为起点,将与此点相连的所有点标记为走过,答案数 \(+1\) 2. 代码实现 #include <bits/stdc++.h> using namespace std; struct p{ int x, y; }; queue<p> q; 阅读全文
posted @ 2024-10-18 08:51 KukCair 阅读(41) 评论(2) 推荐(0)
摘要: 8.12 [ARC159B] GCD Subtraction 题意:没必要讲,就是题面。 按题目直接模拟会超时,考虑优化。 发现在 \(a,b\) 互质时特别慢,每次只能减一,因此应将减一的操作合并。 设会减 \(x\) 次一,则 \(\gcd(a-x,b-x) = c (c \ne 1)\)。 则 阅读全文
posted @ 2024-10-18 08:29 KukCair 阅读(11) 评论(0) 推荐(0)