Original Link 思想: 前缀和。 由于出口为环状,故将数组首尾相连。 构造前缀和数组,即可得到在任意出口顺时针方向或逆时针向走到对应出口的距离之和。 对于每次询问,输出顺时针和逆时针方向上,两个出口最短的距离即可。 代码: #include <bits/stdc++.h> u…
Original Link 思想: 前缀和。 由于牛棚为环状,故将数组首尾相连。 利用 sum 记录牛牛们需要走的距离,前缀和记录 a[i] 扇门 i ~ n 的距离。 从连接后的数组开始,即 i = n ~ 2 * n 开始遍历,sum 减去后一个房间牛牛走过的距离,再加上该房间牛牛走到 i + …
Original Link 思想: 前缀和,双指针。 快指针 i 作为某一分割区间的右端点,慢指针 j 作为该区间的左端点; 当 a[i] - a[j + 1] >= m 时,需要将 j 右移,直到满足 a[i] - a[j] <= m, 此时判断 a[i] - a[j] 的值,若满足 …
Original Link 思想: 二维前缀和。 注意空间,数组不要开 long long。 注意给出的坐标的下标是从 $0$ 开始的。 循环遍历前缀和数组,维护一个最大价值即可。 代码: #include <bits/stdc++.h> using namespace std; con…
Original Link 思想: 前缀和。 特殊情况: 当数组元素小于三个时,无解。 当该数组所有数之和不为 $3$ 的整数倍时,无解。 设数组均分的值为 res,循环遍历前缀和数组 a。 设 i 为分割点,若 a[i] == res,说明将 i 作为分割点有可能成立,记录分割点数量为 cnt +…
A. Compare T-Shirt Sizes Origional Link 题目大意: 给定不同衬衫大小的尺寸编号如:$S,M,L$。 除 $M$ 之外,$X$ 作为尺寸前缀代表其倍数大小。 如:$XXL\gt XL,XXS\lt XS$。 给定两个代表衬衫尺寸的字符串,判断衬衫大小。 思想: …
A. Floor Number Origional Link 题目大意: 给定目标房间编号 $n$ 及一层楼住户数量 $x$。 第一层楼只有 $2$ 个住户,求目标房间所在楼层。 思想: 签到题。 $n\le2$ 时在第一层。 $n\gt 2$ 时: 若 $x$ 可以整除 $n-2$,则在 $\fr…
A. Three Doors 原题链接 Origional Link 思想 从拿到钥匙的门开始,用其得到的钥匙遍历对应的门 直到钥匙为$0$,若共打开了$3$道门,则为YES 代码 #include <bits/stdc++.h> using namespace std; const i…