当前位置: 首页 > news >正文

#题解#洛谷P7167 喷泉#ST表#区间最值#

P7167 [eJOI 2020] Fountain (Day1) - 洛谷

分析

  1. 由于喷泉确定,比第i个盘子大的第一个盘子nxt i 是确定的。我们由ST表维护nxt i 。

  2. 最终落入第几个盘子的答案显然单调,我们进行二分。nxt i j 表示i后面第 j+1个盘子,对 j 二分

代码实现

#include<bits/stdc++.h>
#define int  long long
#define endl '\n'
using namespace std;
const int N = 1e6+10;
int n, q, d[N], c[N], rmax[N][20], f[N][20], g[N][20], log_2[N];
int query_max(int a, int b)
{int x = log_2[b - a + 1];return max(rmax[a][x], rmax[b - (1 << x) +1][x]);
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n >> q;for (int i = 1; i <= n; i++)cin >> d[i] >> c[i];for (int i = 2; i <= n; i++)log_2[i] = log_2[i >> 1] + 1;for (int i = 1; i <= n; i++)rmax[i][0] = d[i];for (int j = 1; (1 << j) <= n; j++)for (int i = 1; i <= n - (1 << j) +1; i++)rmax[i][j] = max(rmax[i][j - 1],rmax[i + (1 << (j - 1))][j - 1]);c[n + 1] = 1e9;d[n + 1] = 1e9;for (int i = 1; i < n; i++){int l = i + 1, r = n + 1, mid;while (l < r){mid = (l + r ) >> 1;if (query_max(i + 1, mid) <= d[i])l = mid + 1;elser = mid;}f[i][0] = l;//下一个盘子的编号g[i][0] = c[f[i][0]];//下一个盘子的容量}for (int t = 1; t <= 16; t++)for (int i = 1; i <= n; i++){f[i][t] = f[f[i][t - 1]][t - 1];//i后第2^t个盘子g[i][t] = g[i][t - 1] + g[f[i][t - 1]][t - 1];}while (q--){int r, v;cin >> r >> v;if (v > c[r]){v -= c[r];for (int t = 16; t >= 0; t--)if (v > g[r][t]){v -= g[r][t];r = f[r][t];}r = f[r][0];}if (r == n + 1) r = 0;cout << r << endl;}return 0;
}
http://www.zskr.cn/news/80028.html

相关文章:

  • 电源芯片的选择
  • 【算法】可获得的最大点数问题
  • 【AI】第二篇 为什么会有神经网络
  • qemu安装aix7.2
  • C语言深度解剖:第一章关键字(五) - 实践
  • CF547B 题解
  • 10403_基于Springboot的旅游管理系统
  • MMH_蓝桥杯Python_语法基础_列表与循环语句基础
  • P5304 [GXOI/GZOI2019] 旅行者 题解
  • the attitude
  • win10 vscode 使用ssh登录 ubuntu
  • 2025年国内正规的微动开关工厂怎么选购,家电微动开关/大电流微动开关/新能源微动开关/小型微动开关/汽车微动开关供货商怎么选 - 品牌推荐师
  • 2025年河南工业大学2025新生周赛 (7)
  • 第四章 串
  • P3076 [USACO13FEB] Taxi G 题解
  • 102302142罗伟钊第四次作业
  • [ABC212D] Querying Multiset 题解
  • 2025年度不锈钢板直销优质厂家TOP榜单盘点,不锈钢中厚板/201不锈钢板/不锈钢热轧板/不锈钢板现货批发哪家好 - 品牌推荐师
  • Troubleshooting一定要逻辑严谨与逻辑自洽
  • 企业微信相关文档
  • 实用指南:【鸿蒙生态共建】鸿蒙6适配-API变化与兼容(2.UI交互与基础能力篇)--《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》读者福利
  • 【自荐】OneClip—— 一款简单专业的 macOS 剪贴板管理工具
  • 数据脱敏:在数据价值与隐私安全之间构建平衡
  • zfk_蓝桥杯C++学习_递归及时空复杂度
  • 完整教程:C如何调用Go
  • vllm部署
  • 《程序员修炼之道:从小工到专家》笔记7
  • 2025年知名的电缆生产厂家推荐(12月名单):电缆生产厂家推荐 - 品牌2026
  • 个人电脑本地私有知识库:访答知识库的优势与应用解析
  • 结构化建模分析测试 -