TYVJ 1038 1039 忠诚、、、、、
来源:互联网 发布:淘宝小食品 编辑:程序博客网 时间:2024/04/30 20:50
在询问过程中账本的内容可能会被修改 输入格式 Input Format 输入中第一行有两个数m,n表示有m(m<=100000)笔账,n表示有n个问题,n<=100000。
接下来每行为3个数字,第一个p为数字1或数字2,第二个数为x,第三个数为y
当p=1 则查询x,y区间
当p=2 则改变第x个数为y 输出格式 Output Format 输出文件中为每个问题的答案。具体查看样例。 样例输入 Sample Input 样例输出 Sample Output 时间限制 Time Limitation 各个测试点1s
#include<cstdio>
#include<cstring>
int n,m;
int a[100010];
#define LL(x) (x<<1)
#define RR(x) (x<<1|1)
#define min(a,b) a>b?b:a
struct TREE
{
int left,right;
int rmin;
int mid() { return ((left+right)>>1);}
}tree[100010*3];
void build(int l,int r,int idx)
{
tree[idx].left=l;
tree[idx].right=r;
if(tree[idx].left==tree[idx].right)
{
tree[idx].rmin=a[l];
return ;
}
int mid=tree[idx].mid();
build(l,mid,LL(idx));
build(mid+1,r,RR(idx));
tree[idx].rmin=min(tree[LL(idx)].rmin,tree[RR(idx)].rmin);
}
void update(int x,int y,int idx)
{
if(tree[idx].left==tree[idx].right)
{
tree[idx].rmin=y;
return;
}
int mid=tree[idx].mid();
if(x<=mid) update(x,y,LL(idx));
else if(x>mid) update(x,y,RR(idx));
tree[idx].rmin=min(tree[LL(idx)].rmin,tree[RR(idx)].rmin);
}
int query(int l,int r,int idx)
{
if(l<=tree[idx].left&&tree[idx].right<=r)
{
return tree[idx].rmin;
}
int mid=tree[idx].mid();
if(l>mid) return query(l,r,RR(idx));
else if(r<=mid) return query(l,r,LL(idx));
else return min( query(l,mid,LL(idx)) , query(mid+1,r,RR(idx)));
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
build(1,n,1);
int a,x,y;
int num=0;
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&x,&y);
if(a==1)
{
if(num!=0) printf(" ");
num=1;
printf("%d",query(x,y,1));
}
else
{
update(x,y,1);
}
}
printf("/n");
return 0;
}
- TYVJ 1038 1039 忠诚、、、、、
- Tyvj 1038 忠诚
- [Tyvj 1038] 忠诚
- Tyvj 1039 忠诚2
- Tyvj 1038-1039 忠诚1-2 【线段树】
- tyvj-忠诚
- 忠诚 && 士兵杀敌(tyvj 1038 && nyoj116)
- tyvj:1038 忠诚 线段树 区间查询
- tyvj p1039 忠诚2
- [TYVJ P1039] 忠诚2
- tyvj P1038 忠诚 线段树
- tyvj P1038 忠诚 ST表(RMQ)
- 忠诚
- p 1038 忠诚 线段树(水)
- TYVJ
- 谈谈“忠诚”
- 【wikioi2173】 忠诚
- tyvj1038忠诚
- c语言中运算符的优先级和求值顺序
- 随笔(2010年4月)
- linux device 2
- 总结1——JSP应用开发详解
- c# 中ListView点击排序的代码,含排序箭头哦!~...
- TYVJ 1038 1039 忠诚、、、、、
- 虚拟机下linux用ifconfig修改ip无法保存问题
- WINCE6.0+S3C2443的启动过程---eboot3
- C#利用mshtml的COM接口,将WebBrowser中的验证码图片读入内存
- VS2008编译时总是出错,进行第二次编译时就没有问题了,不知道这是什么原因?
- Fedora下安装RedHat9 Qemu虚拟机 _qemu系列【1】[dslab]
- 领带系法
- vs2005常用快捷键(包括代码自动缩进)
- 文件流对象最好随时使用随时创建,不要成为类成员