[思维] aw3773. 兔子跳(贪心+模拟+脑筋急转弯)
Posted Ypuyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[思维] aw3773. 兔子跳(贪心+模拟+脑筋急转弯)相关的知识,希望对你有一定的参考价值。
1. 题目来源
链接:3773. 兔子跳
2. 题目解析
脑筋急转弯的失败…想着每次用最不超过 x
位置的数跳过去,殊不知直接超过 x
也是可以的。例如,3 4 5, x=12
,直接 5 5 5
就行了,而不是 5 5 到 10,再来两次…,伞兵了。
思路:
- 1 步跳到,元素相同即可。
- 不能一步跳到,则只用关心最大值。
- 当最大值>x,则 2 步直接到,等腰三角形即可。
- 当最大值<x,则最后两步构成等腰三角形,等价于上取整。
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1)
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
int n, x;
int main() {
int T; cin >> T; while (T -- ) {
cin >> n >> x;
bool flag = false;
int mx = -1e9;
for (int i = 0; i < n; i ++ ) {
int t;
cin >> t;
if (t == x) flag = true;
mx = max(mx, t);
}
int res = 0;
if (flag) res = 1;
else if (x < mx) res = 2;
else res = (x + mx - 1) / mx;
cout << res << endl;
}
return 0;
}
以上是关于[思维] aw3773. 兔子跳(贪心+模拟+脑筋急转弯)的主要内容,如果未能解决你的问题,请参考以下文章
[模拟] aw3664. 数组补全(模拟+贪心+中位数+思维)
[思维] aw3577. 选择数字(思维+脑筋急转弯+aw周赛009_1)
[思维] aw3789. 隐藏字符串(脑筋急转弯+枚举+递推+aw周赛010_3)
[模拟] aw3781. 乘车问题(模拟+细节处理+编程思维)