luogu-HXOI U332989-身高
298 字
1 分钟
luogu-HXOI U332989-身高
Algorithms: 倍增算法
依照题意,我们需要每次求出区间 中的最小值,再把他与 小H 的身高 作比较。
但是看到数据范围,我们可以发现普通暴力的做法是绝对会超时的,所以考虑倍增算法,先用 的时间复杂度初始化,以后每次查询都只需要 的时间复杂度。
#include <iostream>#include <cmath>
#define endl '\n'
using namespace std;
const int N = 1e6 + 5;const int LN = log2(N) + 5;
int k, n, t;int logx[N], f[N][LN];
inline void init() { logx[0] = -1; for (int i = 1; i <= n; ++i) { logx[i] = logx[i / 2] + 1; }
for (int j = 1; j <= logx[n]; ++j) { for (int i = 1; i + (1 << j) - 1 <= n; ++i) { f[i][j] = min(f[i][j - 1], f[i + (1 << (j - 1))][j - 1]); } }}
inline int query(const int &x, const int &y) { int j = logx[y - x + 1]; return min(f[x][j], f[y - (1 << j) + 1][j]);}
int main() { ios::sync_with_stdio(false); cin.tie(nullptr), cout.tie(nullptr);
cin >> k >> n; for (int i = 1; i <= n; ++i) { cin >> f[i][0]; } init(); cin >> t; while (t--) { int l, r; cin >> l >> r; if (k >= query(l, r)) { cout << "Yes" << endl; } else { cout << "No" << endl; } }}支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
luogu-HXOI U332989-身高
https://blog.hxrch.top/posts/luogu-hxoi-u332989-身高/ 相关文章 智能推荐
1
luogu-HXOI U330374-密室逃脱
题解 洛谷-HXOI U330374-密室逃脱 Std | 题解
2
luogu-HXOI-U331150-密室逃脱2
题解 洛谷-HXOI U331150-密室逃脱2 Std | 题解
3
oiClass-puji P1278-树和数tree
题解 oiClass-puji P1278-树和数tree 题解
4
oiClass-puji P2112-征兵
题解 oiClass-puji P2112-征兵 题解
5
平面几何 v.s. 其他方法——谁才是王者?
数学 本文作者分享了在高中科技节数学“说数学比赛”活动中遇到的五道有趣的平面几何题,围绕各题的官方解法(多为三角法或解析几何、向量法)与自己设计的纯平面几何解法展开详细讲解。文章通过具体题目实例,展示了动静互换、探照灯模型、反演变换、倍长中线及阿氏圆等多种平面几何思维技巧的应用。作者强调纯几何解法虽计算量小但思维含量丰富,鼓励读者通过多种视角切换提升解题能力。文章最后总结了平面几何的灵活多变和思维训练价值,并鼓励求知者换角度思考问题。
随机文章 随机推荐
Horean's Blog