【模拟】The Corridor or There and Back Again—CF1872B
2023-12-19 20:52:34
The Corridor or There and Back Again
- 这道题并不难,就是一道模拟。
- 但其中的边界不好把握,需要根据样例理解题目意思。
- 不是只需要考虑第一个陷阱。
- 每个位置“发生作用”的是爆炸时间最短的陷阱
C o d e Code Code
#include <bits/stdc++.h>
#define int long long
#define sz(a) ((int)a.size())
using namespace std;
using PII = pair<int, int>;
using i128 = __int128;
const int N = 2e5 + 10;
int n;
int a[N];
void solve() {
cin >> n;
for (int i = 1; i <= 200; i ++ ){
a[i] = 1e18;
}
for (int i = 1; i <= n; i ++) {
int d, s; cin >> d >> s;
a[d] = min(a[d], s);
}
cout << " ";
int res = 410;
for (int i = 1; i <= 200; i ++) {
if (a[i] != 1e18) { // 这个地方存在陷阱
res = min(res, i - 1 + (a[i] + 1) / 2);
/*
我一开始用的是i - 1 + a[i] / 2,
但发现输出不对,就根据样例觉得应该是
i - 1 + (a[i] + 1) / 2。
这种比较模糊的边界问题很麻烦,
很多时候都需要根据样例确定题目意思到底是什么。
*/
}
}
cout << max(res, 1ll) << "\n";
}
signed main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int T = 1;
cin >> T; cin.get();
while (T --) solve();
return 0;
}
文章来源:https://blog.csdn.net/suoper2656/article/details/132752257
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!