专栏文章

题解:P12647 [KOI 2024 Round 2] 寻宝游戏

P12647题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mip6bmao
此快照首次捕获于
2025/12/03 06:52
3 个月前
此快照最后确认于
2025/12/03 06:52
3 个月前
查看原文

解题思路

考虑 L<S<RL\lt S\lt R 因此起点必然在两个点中间。观察规律可以转化为两个人分别从起点往左和往右轮流各走一步,判断两个小人的其中一个走到目标点的最少步数和。由于向右的小人先走,故如果起点到右目标点的距离等于左目标点距离时,右边先到。直接计算即可。效率为 O(T)O(T)

代码实现

CPP
#include<bits/stdc++.h>
using namespace std;
int main() {
	int T, l, r, s;
	cin >> T;
	while (T--) {
		cin >> l >> r >> s;
		int dl = abs(s - l), dr = abs(r - s);
		if (dr <= dl) {
			cout << (dr * 2) << endl;
		} else {
			cout << (dl * 2) +1 << endl;
		}
	}
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...