get了新的标记永久化技能~

这题要求询问max和覆盖,因为是线段树套线段树,所以内外都不可以标记下传

这种标记永久化的套路是维护两个标记:$mx,all$,$mx$表示这个子树内的真最大值,$all$表示整个子树曾经被覆盖过这样的最大值

修改:更新经过节点的$mx$和覆盖区间节点的$all$

查询:统计经过节点的$all$和覆盖区间节点的$mx$

然后就不用下传标记了,还有写成struct会方便许多

类似地,区间加的标记永久化的两个标记是【子树和(假)】还有【子树增值】,【子树和(假)】+【子树增值】=【子树和(真)】

#include<stdio.h>
int n,m;
int max(int a,int b){return a>b?a:b;}
struct iseg{int mx[3010],al[3010];int query(int L,int R,int l,int r,int x){if(L<=l&&r<=R)return mx[x];int ans=al[x],mid=(l+r)>>1;if(L<=mid)ans=max(ans,query(L,R,l,mid,x<<1));if(mid<R)ans=max(ans,query(L,R,mid+1,r,x<<1|1));return ans;}void modify(int L,int R,int v,int l,int r,int x){mx[x]=max(mx[x],v);if(L<=l&&r<=R){al[x]=max(al[x],v);return;}int mid=(l+r)>>1;if(L<=mid)modify(L,R,v,l,mid,x<<1);if(mid<R)modify(L,R,v,mid+1,r,x<<1|1);}
};
struct oseg{iseg mx[3010],al[3010];int query(int L,int R,int Li,int Ri,int l,int r,int x){if(L<=l&&r<=R)return mx[x].query(Li,Ri,1,m,1);int ans=al[x].query(Li,Ri,1,m,1),mid=(l+r)>>1;if(L<=mid)ans=max(ans,query(L,R,Li,Ri,l,mid,x<<1));if(mid<R)ans=max(ans,query(L,R,Li,Ri,mid+1,r,x<<1|1));return ans;}void modify(int L,int R,int Li,int Ri,int v,int l,int r,int x){mx[x].modify(Li,Ri,v,1,m,1);if(L<=l&&r<=R)return al[x].modify(Li,Ri,v,1,m,1);int mid=(l+r)>>1;if(L<=mid)modify(L,R,Li,Ri,v,l,mid,x<<1);if(mid<R)modify(L,R,Li,Ri,v,mid+1,r,x<<1|1);}
}t;
int main(){int q,d,s,w,x,y;scanf("%d%d%d",&n,&m,&q);while(q--){scanf("%d%d%d%d%d",&d,&s,&w,&x,&y);t.modify(x+1,x+d,y+1,y+s,t.query(x+1,x+d,y+1,y+s,1,n,1)+w,1,n,1);}printf("%d",t.query(1,n,1,m,1,n,1));
}

转载于:https://www.cnblogs.com/jefflyy/p/8452192.html

[BZOJ1513]Tet-Tetris 3D相关推荐

  1. bzoj1513【POI2006】Tet-Tetris 3D

    1513: [POI2006]Tet-Tetris 3D Time Limit: 30 Sec  Memory Limit: 162 MB Submit: 733  Solved: 245 [Subm ...

  2. 分享21个丰富多彩的 HTML5 小游戏

    作为下一代的网页语言,HTML5 拥有很多让人期待已久的新特性.HTML5 的优势之一在于能够实现跨平台游戏编码移植,现在已经有很多公司在移动设备上使用 HTML5 技术.随着 HTML5 跨平台支持 ...

  3. 【POI 2007】Tetris Attack 正方体大作战(tet)

    http://www.zybbs.org/JudgeOnline/problem.php?id=1106 http://main.edu.pl/en/archive/oi/14/tet 题目大意:诶呀 ...

  4. 读论文:(nvdiffrec) Extracting Triangular 3D Models, Materials, and Lighting From Images

    Project page: https://nvlabs.github.io/nvdiffrec/ github项目名称叫 nvdiffrec 整体看起来跟nurf一样是对单个物体(单个场景)训练的. ...

  5. 俄罗斯方块(Tetris)

    <俄罗斯方块>(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏. 我将其作为我课程设计的题目,重温程序设计的基础.由于课设时间有限, ...

  6. java tetris_Java | Tetris

    基于 Java-Swing 实现俄罗斯方块 Preview 普通模式: 加速模式: 设计思路 方块的属性 方块表示: 由四维数组 SHAPE[][][][] 表示7种方块及每种方块的4种翻转状态. 由 ...

  7. 俄罗斯方块Tetris(C基础,Linux终端)

    文章目录 俄罗斯方块Tetris(C基础,Linux终端) 前言 游戏说明 游戏效果展示 游戏程序实现步骤 一.准备工作 1.非阻塞型输入 2.在屏幕上打印一个方块 二.头文件.宏定义.全局变量.声明 ...

  8. 3D游戏引擎剖析【较全面】

    转自:http://blog.csdn.net/is01sjjj/article/details/430125 第1部分: 游戏引擎介绍, 渲染和构造3D世界 介绍 自Doom游戏时代以来我们已经走了 ...

  9. webgl实现3D俄罗斯方块

    webgl实现3D俄罗斯方块 文章同时发布于王鹏飞的个人网站. 试玩地址:3d tetris. 源码: https://github.com/pengfeiw/3d-tetris 学习webgl/op ...

最新文章

  1. Faiss教程:索引(2)
  2. oligo包处理原始芯片数据
  3. 如何在组件模板中选择元素?
  4. lsof 查看一个进程打开哪些fd及对应的文件或套接字操作
  5. curl的速度为什么比file_get_contents快以及具体原因
  6. Dalvik VM和Java VM的区别:
  7. ITK:来自图像的多分辨率金字塔
  8. Spark的RDD操作之Join大全
  9. Silverlight 2.5D RPG游戏技巧与特效处理:(十六)动态资源
  10. 历年安徽省二计算机考试题库,2010安徽省计算机等级考试试题 二级ACCESS最新考试试题库...
  11. consul命令行查看服务_Go语言微服务架构实战:第十三节 微服务管理--Docker安装及运行consul节点...
  12. 分享些我见到的听到的各种创业经历(有成功也有失败)——分析下创业成功要做到哪些...
  13. scala 类及抽象类入门
  14. Java中== equals hashcode浅析[转]
  15. python中基础知识_Python中的一些基础知识
  16. 美媒:软银售ARM中国子公司51%股权,暴露美国痛处
  17. 双硬盘安装双系统详解
  18. 部署tomcat之appBase和docBase
  19. 关于PostgreSQL软件安装后出现解决the application server could not be contect ed错误的方法
  20. cad两直线相交画圆弧_CAD两直线,如何用圆弧连接?

热门文章

  1. 2022红帽RHCSA考题解析
  2. UOJ#311. 【UNR #2】积劳成疾
  3. 陀螺年度巨献 | 2020年度区块链产业发展报告
  4. 李嘉诚:无霸气才能成霸业
  5. xcode13 swift语言 ios开发 快捷代码优化方式(代码重构)例子
  6. 2021.06.29【R语言】丨png转pdf批量生成
  7. 流失预测模型实证-Pareto/NBD模型
  8. 用python放烟花咯
  9. 如何给sublime text3安装汉化包?so easy 哦
  10. Infinite-former:无限记忆变换器