bzoj 1171: 大sz的游戏, bzoj 2892: 强袭作战
标记永久化,线段树套单调队列。
标记永久化的好处在于可以减少下传标记的时间。
如果有些标记很难下传,但是打标记的顺序对结果没有影响,就可以用标记永久化
比如说 支持矩阵加、矩阵求和就可以用带标记永久化的二维线段树来做——> 用第二维线段树维护第一维线段树上的标记
标记永久化具体做法:维护两种值,A、B。
修改:如果区间覆盖了一个节点,修改A,返回。如果经过一个节点,修改B,递归修改两个子树
查询:如果区间覆盖了一个节点,返回B。如果经过了一个节点,递归查询子树并加上当前节点的A值
另:(大雾
一维:返回一个变量的值
二维:区间求和
三维:矩形求和
四维:矩形加、矩形求和
五维:矩形加、矩形求和,带撤销
六维:矩形加、矩形求和,可持久化
七维:?
#include <bits/stdc++.h> #define N 1001000 #define M 6000000 #define mp make_pair #define fr first #define sc second #define pI pair <int, int> #define INF 1000000000 #define int unsigned using namespace std; int n, L; int lb[M], rb[M], lc[M], rc[M]; list <pI> tg[M], su[M]; int xi[N], yi[N], li[N], px[N]; int tot, ss, tim; int build(int l, int r) {int nw = ++ ss;lb[nw] = l; rb[nw] = r;if (l != r)lc[nw] = build(l, (l + r) / 2),rc[nw] = build((l + r) / 2 + 1, r);return nw; } void add(int t, int l, int r, pI s) {if (l <= lb[t] && rb[t] <= r){while (!tg[t].empty() && tg[t].back().sc >= s.sc) tg[t].pop_back();tg[t].push_back(s);return;}while (!su[t].empty() && su[t].back().sc >= s.sc) su[t].pop_back();su[t].push_back(s);if (l <= rb[lc[t]]) add(lc[t], l, r, s);if (r >= lb[rc[t]]) add(rc[t], l, r, s); } int sum(int t, int l, int r) {int s;while (!tg[t].empty() && tg[t].front().fr < tim)tg[t].pop_front();if (!tg[t].empty()) s = tg[t].front().sc;else s = INF;while (!su[t].empty() && su[t].front().fr < tim)su[t].pop_front();if (l <= lb[t] && rb[t] <= r){if (!su[t].empty()) s = min(s, su[t].front().sc);return s;}if (l <= rb[lc[t]]) s = min(s, sum(lc[t], l, r));if (r >= lb[rc[t]]) s = min(s, sum(rc[t], l, r)); return s; } int f[N]; signed main() {scanf("%d%d", &n, &L);for (int i = 2; i <= n; ++ i)scanf("%d%d%d", &xi[i], &yi[i], &li[i]),px[++ tot] = xi[i],px[++ tot] = yi[i];sort(px + 1, px + tot + 1);xi[1] = px[1]; yi[1] = px[tot];tot = unique(px + 1, px + tot + 1) - px - 1;for (int i = 1; i <= n; ++ i)xi[i] = lower_bound(px + 1, px + tot + 1, xi[i]) - px,yi[i] = lower_bound(px + 1, px + tot + 1, yi[i]) - px;build(1, tot);//printf("%d\n", ss);add(1, 1, tot, mp(L, 0));for (int i = 2; i <= n; ++ i){//if (i == 182796)// puts("233");tim = li[i];f[i] = sum(1, xi[i], yi[i]) + 1;add(1, xi[i], yi[i], mp(li[i] + L, f[i])); printf("%d\n", f[i] > n? -1: f[i]);} }
转载于:https://www.cnblogs.com/AwD-/p/6298184.html
bzoj 1171: 大sz的游戏, bzoj 2892: 强袭作战相关推荐
- [线段树 标记永久化 单调队列] BZOJ 1171 大sz的游戏 BZOJ 2892 强袭作战
很好的题解:http://blog.sina.com.cn/s/blog_76f6777d0101dizp.html "考虑裸的n^2暴力dp. dp[i]=min(dp[j])+1 ( d ...
- 【BZOJ-28921171】强袭作战大sz的游戏 权值线段树+单调队列+标记永久化+DP...
2892: 强袭作战 Time Limit: 50 Sec Memory Limit: 512 MB Submit: 45 Solved: 30 [Submit][Status][Discuss] ...
- BZOJ1171: 大sz的游戏BZOJ2892: 强袭作战
Description 大sz最近在玩一个由星球大战改编的游戏.话说绝地武士当前共控制了N个星球.但是,西斯正在暗处悄悄地准备他们的复仇计划.绝地评议会也感觉到了这件事.于是,准备加派绝地武士到各星球 ...
- bzoj 4573 大森林
bzoj 4573 大森林 由于树上路径是唯一的,查询合法的两个点间路径长度显然与其他加点操作无关,所以可以离线处理,将所有的查询放在加点后. 这样我们可以对每棵树都在上颗树的基础上处理好形态后,处理 ...
- HTML期末大作业~棋牌游戏静态网站(6个页面) HTML+CSS+JavaScript
HTML期末大作业~棋牌游戏静态网站(6个页面) HTML+CSS+JavaScript 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手?网页要求的总数 ...
- 大数据文字游戏_基于大数据的游戏化教学系统研究.docx
基于大数据的游戏化教学系统研究 ―.引言 目前,我国高校在线开放课程的建设已经取得了较大的发展,在线课程的使用已经使高 校教学发生了巨大的变化.课程的网络资源可以作为延伸课堂教学的工具,有效减轻了课堂 ...
- html 转盘游戏开发,【scratch】简单的大转盘小游戏
彩色大转盘 大家是否在各种饭店.商家.网页上看到过大转盘的抽奖活动装置? 对就是这种!!!有各种奖品以及充斥着整个版面50%+的谢谢参与. 我们的小码农也做了一款简单的并且没有(大概)谢谢参与的大转盘 ...
- 十大笔记本电脑排行_2020双十一,十大高性价比游戏笔记本电脑值得买排行榜之搭载144Hz电竞屏机型(配置推荐)福利放送...
最新文章已更新20201028,戳下方⏬文章链接看最新排行 Leo Leung:双十一更新,预算万元以下144Hz广色域电竞屏游戏笔记本电脑十大高性价比机型排行榜.福利放送!zhuanlan.zhi ...
- ★「C++游戏」BattleOfPhantom:大乱斗游戏升级版
(原创) 目前正在不断更新! ★ 一款超级有趣的大乱斗游戏,包含多种游戏模式,支持双人联机. 离线情况下也可以与多个(或一群)机器玩家进行疯狂的对战. 直接上图 使用C++ with EGE图形库编写 ...
最新文章
- cmakelists 常见用法
- flutter 卡顿_Flutter WebView 卡顿问题
- python import 原理-Python之禅-import this的实现
- how to balance between csdn and github?
- Autofac框架初识与应用
- 优秀学生专栏——孙珩发
- 让机器读懂视频:亿级淘宝视频背后的多模态AI算法揭秘
- 什么鬼?弃用JDK动态代理,Spring5 默认使用 CGLIB 了?
- 安装详细步骤win7_windows安装器怎么安装原版win7【详细教程】
- [Swift]LeetCode1051.高度检查器 | Height Checker
- 如何批量把照片设置统一尺寸?
- 云计算、计算虚拟化、网络基础简介
- 微信小程序文本输入<input/> 详解
- Android实现中英文切换
- 把QUERY的输出结果作为数据源_小七_新浪博客
- php爬拉钩数据,拉勾网数据两种爬取
- Sqlmap免Python版启动器的小修改(根据学习进度逐步更新)
- 前后端分离跨域上传图片代码
- BeagleBone Black Industrial系统更新设置一贴通
- 【论文写作】Word文档中的MathType公式大小不一导致版面很难看完美解决方法
热门文章
- 苹果手机怎么用计算机打出字,iPhone输入法忽然打不出中文怎么办?收下这份指南日常打字如飞!...
- NFT/Web3/区块链项目孵化包装策划,到底该自建运营还是专业外包孵化?
- 输出的字符串中有空格并且无法替换B e a r e r N D c y Z T g 4 N z A t N 2 N h Z C 0 0 Y 2 E 4 L T g x M W E t O D Y
- 关于spring-mybatis整合出现的问题Error creating bean with name ‘sqlSessionFactory‘ defined in class path reso
- cocos2dx lua 3.14 适配 安卓 刘海屏 全面屏 异形屏
- 《关于我重装系统后修复VSCode这档事》C++环境配置
- 计算机组成原理---输入输出设备
- 浅谈大数据任务调度平台
- Excel工具类(详细版)
- 使用R读取并查看数据