Tyvj 1039 忠诚2
题目: |
忠诚2 |
|
来源: |
Tyvj 1039 |
|
题目大意: |
给出N个数,M次操作,p=1时输出(a,b)中的最小值,p=2时把第x个数改成y |
|
数据范围: |
m<=100000,n<=100000 |
|
样例: |
10 3 1 2 3 4 5 6 7 8 9 10 1 2 7 2 2 0 1 1 10 |
2 0 |
做题思路: |
曾经痴迷的线段树,动态起来和st比我认为还是线段树好理解 |
|
知识点: |
RMQ,线段树 |
const MaxN=100010;typetre=recordl,r,lc,rc,min:longint;{<左右边界、左右儿子、区间最小值>}end;//tre
vartree:array[0..MaxN*4] of tre;n,m,i,j,x,a,b,root,tot,ans,p:longint;
procedure build(vart:longint;l,r:longint);{<建树>}
begininc(tot);t:=tot;tree[t].l:=l;tree[t].r:=r;tree[t].min:=maxlongint;ifl<r thenbeginbuild(tree[t].lc,l,(l+r)div 2);build(tree[t].rc,(l+r)div 2+1,r);end;//if
end;
function min(a,b:longint):longint;
beginifa>b then exit(b);exit(a);
end;
procedure insert(t,i:longint);{<插入>}
beginift=0 then exit;iftree[t].l=tree[t].r thenbegintree[t].min:=x;exit;end;iftree[tree[t].lc].r>=i then insert(tree[t].lc,i)else insert(tree[t].rc,i);tree[t].min:=min(tree[tree[t].lc].min,tree[tree[t].rc].min);{<维护区间最小值>}
end;
procedure find(t,l,r:longint);{<查找>}
beginift=0 then exit;if(tree[t].l=l)and(tree[t].r=r) thenbeginifans>tree[t].min then ans:=tree[t].min;{<由于该区间可能跨越子树所以做下比较>}exit;end;iftree[tree[t].lc].r>=r then find(tree[t].lc,l,r)elseiftree[tree[t].rc].l<=l then find(tree[t].rc,l,r)elsebeginfind(tree[t].lc,l,tree[tree[t].lc].r);find(tree[t].rc,tree[tree[t].rc].l,r);end;
end;
beginreadln(m,n);root:=0;tot:=0; build(root,1,m);fori:=1 to m dobeginread(x);insert(root,i);end;fori:=1 to n dobeginreadln(p,a,x);ifp=1 thenbeginans:=maxlongint;{<初始化maxlongint才能更新>}find(root,a,x);write(ans,' ');endelsebegininsert(root,a);{<改变第x个数为y也就是把y插入到x位置上,然后更新所涉及的子树>}end;end;
end.
题目来源: http://www.tyvj.cn:8080/Problem_Show.asp?id=1039
Tyvj 1039 忠诚2相关推荐
- Tyvj 1038 忠诚
题目: 忠诚 来源: Tyvj 1038 题目大意: 给出N个数,M次询问,每次输出(a,b)中的最小值 数据范围: m<=100000,n<=100000 样例: 10 3 1 2 3 ...
- 洛谷 P1816 忠诚
题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...
- TYVJ P1080 N皇后 Label:dfs PS:以前做的一道题,贴出来防忘
描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 5来描 ...
- 【宽搜】XMU 1039 Treausure
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1039 题目大意: 给定n,m(1<=n,m<=1000),一张n*m的地图 ...
- 关于如何发现忠诚的下属的讨论
说点我的看法,一家之言,不一定准确哈. 我觉得抛去外界的物质因素,精神因素,社会因素,来谈论忠诚,其实是不准确的.因为人是社会型的动物,且人是变化性的动物,是没有办法用简单的什么公式来推导的. 有的时 ...
- |Tyvj|动态规划|P1004 滑雪
http://tyvj.cn/p/1004 由于考虑高度问题,确保每个值都算出来,这里用的是记忆化搜索. #include<cstdio> #include<cstring> ...
- BZOJ 3224: Tyvj 1728 普通平衡树 treap
3224: Tyvj 1728 普通平衡树 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- BZOJ 3223: Tyvj 1729 文艺平衡树(splay)
速度居然进前十了...第八... splay, 区间翻转,用一个类似线段树的lazy标记表示是否翻转 ------------------------------------------------- ...
- 【洛谷P1816 忠诚】线段树
题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...
最新文章
- 不讲码德!坏味道偷袭我这个老码农
- Amazon S3 功能介绍
- 用计算机探索,学生计算机基础的应用探索
- 【Elasticsearch】java 操作 Elasticsearch 7.8 索引 文档 等操作
- oracle+rownum(),Oracle rownum和row_number()
- mysql备份单实例(一)shell
- LabVIEW数字抽奖程序
- 2021-4-28 合抱之木,生于毫末,九层之台,起于垒土
- Gateway 网关 (二) 全局过滤器
- MessageBox中涉及到的宏定义
- 什么是敏感信息检测,敏感信息检测,安全视图 | 云效
- 13.2.3 VAM服务器的配置步骤及示例(2)
- windows远程命令执行
- 智能时代的内容安全,易盾是如何落地的?
- ios录音文件路径_iOS中录音功能
- 对于学习率与梯度下降的通俗总结:
- 多商户商城系统方案分析
- 哈哈哈哈~山野村夫大进展
- 报告发布|“双轮驱动”重磅升级,天猫联合瓴羊、罗兰贝格发布《天猫DTC企业经营指南 :以人为本,品牌致胜》
- JAVA中的异步调用
热门文章
- php ldap目录协议,PHP 通过LDAP协议,操作Windows Active Directory
- 风口猪炒股指标操作复盘 2021-01-20
- Facebook Surround 360 环境配置指南
- pycharm报错SyntaxError: Non-UTF-8 code starting with ‘\xdf‘ in file的一种可能的解决方式
- 2016年1月19日课程作业
- A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效(牛客网)
- 囤书正当时,这些口碑好书值得买
- 3月16日——3月20日课程表
- CentOS7配置nexus开机自启动
- html 最简单的网页制作,HTML入门----简单网页制作