问题 H: 老管家的忠诚

时间限制: 0 Sec  内存限制: 128 MB
提交: 54  解决: 21
[提交][状态][讨论版][命题人:外部导入]

题目描述

        老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。于是他决定用一种特别的方法来判断管家的忠诚,他把每次的账目按1,2,3…编号,然后不定时的问管家问题,问题是这样的:在a到b号账中最少的一笔是多少?为了让管家没时间作假他总是一次问多个问题。           在询问过程中账本的内容可能会被修改

输入

输入中第一行有两个数m,n表示有m(m< =100000)笔账,n表示有n个问题,n< =100000。 接下来每行为3个数字,第一个p为数字1或数字2,第二个数为x,第三个数为y 当p=1  则查询x,y区间 当p=2  则改变第x个数为y

输出

输出文件中为每个问题的答案。具体查看样例。

样例输入

10 3
1 2 3 4 5 6 7 8 9 10
1 2 7
2 2 0
1 1 10

样例输出

2 0

提示

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <map>
#include <queue>
#include<cmath>
#include <vector>
using namespace std;
typedef long long ll;
const ll maxn = <<;
const ll maxd = 1e8+;
const ll mod = ;
ll b[maxn];
ll date[maxn*-],n;
void init(ll nn)
{
n=;
while(n<nn)
{
n*=;
}
for(ll i=;i<=*n-;i++)
{
date[i]=mod;
}
}
void update(ll k,ll a)
{
k+=n-;
date[k]=a;
while(k>)
{
k=(k-)/;
date[k]=min(date[k*+],date[k*+]);
}
}
ll query(ll a,ll b,ll k,ll l,ll r)
{
if(r<=a||b<=l)
{
return mod;
}
if(a<=l&&r<=b)
{
return date[k];
}else
{
ll vl=query(a,b,k*+,l,(l+r)/);
ll vr=query(a,b,k*+,(l+r)/,r);
return min(vl,vr);
}
}
int main()
{
ll i,m,j,k,l;
scanf("%lld %lld",&j,&m);
init(j);
for(i=;i<j;i++)
{
scanf("%lld",&b[i]);
update(i,b[i]);
}
ll r,q;
for(i=;i<=m;i++)
{
scanf("%lld %lld %lld",&q,&l,&r);
if(q==)
{
update(l-,r);
b[l-]=r;
continue;
}
if(l>r)
{
swap(l,r);
}
if(l==r)
{
printf("%lld",b[l-]);
if(i<m)
{
printf(" ");
}else
{
printf("\n"); }
continue;
}
ll mm=;
printf("%lld",query(max(l-,mm),r,,,n));
if(i<m)
{
printf(" ");
}
}
return ;
}

问题 H: 老管家的忠诚(线段树)的更多相关文章

  1. 【原创】tyvj1038 忠诚 & 计蒜客 管家的忠诚 & 线段树(单点更新,区间查询)

    最简单的线段树之一,中文题目,不翻译.... 注释讲的比较少,这已经是最简单的线段树,如果看不懂真的说明最基础的理论没明白 推荐一篇文章http://www.cnblogs.com/liwenchi/ ...

  2. Tyvj1038 忠诚 (线段树)

    [Tyvj1038]忠诚 线段树   题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是 ...

  3. tyvj:1038 忠诚 线段树

    tyvj:1038 忠诚 Time Limit: 1 Sec  Memory Limit: 131072KiBSubmit: 9619  Solved: 3287 题目连接 http://www.ty ...

  4. 【Tyvj1038】忠诚 线段树

    题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...

  5. newcoder H肥猪(单调队列 / 线段树)题解

    题意: 小B来到了一个异世界,成为了肥猪之王. 在这个异世界,共有n种肥猪,编号分别为1,...,n. 小B希望集齐这n种肥猪. 召集肥猪有两种方式: 1. 花费a[i]的金币召唤一只编号为i的肥猪. ...

  6. HDU 2795 Billboard 【线段树维护区间最大值&&查询变形】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=2795 Billboard Time Limit: 20000/8000 MS (Java/Others) ...

  7. hdu 2795 Billboard(线段树单点更新)

    Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  8. CDOJ 1073 线段树 单点更新+区间查询 水题

    H - 秋实大哥与线段树 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit S ...

  9. 【洛谷P1816 忠诚】线段树

    题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...

随机推荐

  1. music cube

    music cubehttps://www.youtube.com/watch?v=HBCdC7r7Mp4Blender Tutorial: Make anything react with musi ...

  2. acm 2043

    ////////////////////////////////////////////////////////////////////////////////#include<iostream ...

  3. time,datetime模块

    time & datetime 模块 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime,calendar(很少用,不讲),下面 ...

  4. html和vue框架

    HTML写的页面,每次跳转的时候都要向服务器请求 vue框架:单页面运用,路由的跳转,方便

  5. hdu3294 Girls' research manacher

    One day, sailormoon girls are so delighted that they intend to research about palindromic strings. O ...

  6. 每天进步一点点-写完睡觉-周一工作(java基本数据类型所占的字节和IO流读取的字符和字节)

  7. MySQL--时间戳与时区问题

    对于使用 timestamp 的场景,MySQL 在访问 timestamp 字段时会做时区转换,当 time_zone 设置为 system 时,MySQL 访问每一行的 timestamp 字段时 ...

  8. http1.1 和 http2 的协议对比测试

    http1.1 和 http2 的协议对比测试 http 协议发展了很多年,目前最为流行的是 http 2. 发现有些网站很流行的网站用的 http1.1, 询问后原来是因为有特殊用途. https: ...

  9. [转]ArrayList的实现原理

    1. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部 ...

  10. Myeclipse 配置Git详解

    Myeclipse+Git EGit安装 MyEclipse已经集成了Git插件EGit,在window->Preference里搜索git可以看到.   如果没有,安装方式为Help-> ...