poj4047 线段树

MPU6050 加速度计和陀螺仪传感器与 Arduino 的接口 虽然该模型并不能准确代表现实世界中加速度计传感器的构建方式,但它通常有助于理解为什么加速度计的输出信号通常以 ±g 为单位指定,或者为什么加速度计在静止时在 z 轴上的读数为 1g,或者在不同方向上您可以期望得到什么样的加速度计读数。该模块的核心是低功耗、低成本的 6 轴运动跟踪芯片 MPU6050,它将 3 轴陀螺仪、3 轴加速度计和数字运动处理器 (DMP) 集成到一个 4mm x 4mm 的微型芯片中。小时候,科学博览会上的陀螺仪总是让我们感到惊讶,因为它们以奇怪的方式移动,甚至似乎违背了重力。 阅读详情
//poj4047 
#include <iostream>
using namespace std;
#define maxn 200100
#define LL(x) (x<<1)
#define RR(x) (x<<1|1)
struct Seg {
       int l,r,v,c;
       int len() {return (r-l+1);}
}a[maxn*3];
void buildtree(int t,int l,int r) {
     a[t].l = l;
     a[t].r = r;
     a[t].v = a[t].c = 0;
     if (l==r) return;
     int mid=(l+r)>>1;
     buildtree(LL(t),l,mid); 
     buildtree(RR(t),mid+1,r);
}
void up(int t) {
     a[t].v = max(a[LL(t)].v,a[RR(t)].v);
}
void down(int t) {
     //无法向下传,清除原子空间lazy标记,防爆 
     if (a[t].l==a[t].r) {
                         a[t].c = 0;
                         return;
     }
     if (a[t].c) {
                 a[LL(t)].c += a[t].c;
                 a[RR(t)].c += a[t].c;
                 a[LL(t)].v += a[t].c;   //这两行很重要!!开始我忘写了,忘写就不是lazy了! 
                 a[RR(t)].v += a[t].c;
                 a[t].c = 0;
     }
}
//区间加 
void add(int t,int b,int c,int x) {
     if (a[t].l==a[t].r) {
                         a[t].v += x;
                         return;
     }
     if (b==a[t].l && a[t].r==c) {
                   a[t].c += x;
                   a[t].v += x;
                   return;
     }
     down(t);
     int mid=(a[t].l+a[t].r)>>1;
     if (c<=mid) add(LL(t),b,c,x);
     else if (mid+1<=b) add(RR(t),b,c,x);
     else {
          add(LL(t),b,mid,x);
          add(RR(t),mid+1,c,x);
     }
     up(t);
}
//求最大值 
int query(int t,int b,int c) {
    down(t);
    if (b==a[t].l && a[t].r==c)
                  return a[t].v;
    int mid=(a[t].l+a[t].r)>>1;
    if (c<=mid) return query(LL(t),b,c);
    else if (mid+1<=b) return query(RR(t),b,c);
    else {
          return max(query(LL(t),b,mid),query(RR(t),mid+1,c));
    }
}         
int cas,n,m,k,b,c,r,bb,cc,val[maxn];
int main() {
    scanf("%d",&cas);
    while (cas--) {
          scanf("%d%d%d",&n,&m,&k);
          buildtree(1,1,n-k+1);
          for (int i=1;i<=n;i++) {
              scanf("%d",&val[i]);
              b = i-k+1;
              if (b<1) b = 1;
              c = i;
              if (c>n-k+1) c = n-k+1;
              add(1,b,c,val[i]);
          }
          
          for (int i=1;i<=m;i++) {
              scanf("%d%d%d",&r,&b,&c);
              if (r==0) {
                 int tmp = c - val[b];
                 val[b] = c;
                 bb = b-k+1;
                 if (bb<1) bb = 1;
                 cc = b;
                 if (cc>n-k+1) cc = n-k+1;
                 add(1,bb,cc,tmp);
              }
              else if (r==1) {
                   int tmp = val[c] - val[b];
                   val[b] += tmp;
                   bb = b-k+1;
                   if (bb<1) bb = 1;
                   cc = b;
                   if (cc>n-k+1) cc = n-k+1;
                   add(1,bb,cc,tmp);
                   val[c] -= tmp;
                   bb = c-k+1;
                   if (bb<1) bb = 1;
                   cc = c;
                   if (cc>n-k+1) cc = n-k+1;
                   add(1,bb,cc,-tmp);
              }
              else {
                   printf("%d\n",query(1,b,c-k+1));
              }
          }
    }
    return 0;
}

信创服务器(麒麟 V10 SP3)安装 NVIDIA GeForce RTX 5070 驱动 本文介绍了在麒麟V10 SP3系统上安装NVIDIA RTX 5070显卡驱动的详细步骤。首先需要关闭nouveau驱动,安装必要的编译环境和工具,确保内核版本与kernel-devel完全一致。最后运行NVIDIA驱动安装程序,关键选择包括启用DKMS支持、编译模块、禁用32位兼容和nouveau驱动。整个流程适用于海光CPU和Blackwell架构GPU的国产操作系统环境。 阅读详情

相关推荐

电机控制中ADC采样时序的优化策略与实践

本文深入探讨了电机控制中ADC采样时序的优化策略与实践,重点分析了BLDC和FOC控制方案中的核心挑战与解决方案。通过硬件布局优化、软件滤波技术及动态时序补偿等方法,有效提升电流采样精度和系统稳定性,为电机控制系统的性能优化提供实用指导。

weixin_42519985的博客 386

poj4047(线段树+延迟更新)

//线段树延迟更新 //将连续相邻的k个数据的和看成一个元素,建立线段树;交换、替代两种操作都可以统一成加法操作   //-------加法 //若当前加法操作的区间和当前所在节点的左右区间相同,则只修改延迟标记adi,和当前区间的最大值sum;若不一致,才开始向下执行加法操作,同时修改最大值   //------查询 //若当前查询的区间和当前所在区间相同,则直接返回结果;若不一致

晓风残月xj 814

Python海康摄像头SDK二次开发

摘要:为解决海康威视摄像头RTSP拉流延迟严重的问题,本文提出改用海康私有SDK直接取流的方案。通过下载海康设备网络SDK并调用其Python接口,实现了低延迟的视频流获取。文中详细介绍了SDK配置流程,并提供了优化版的Python代码示例,重点解决回调函数处理、队列缓冲和CPU占用等问题。测试结果表明,该方案显著降低了延迟,同时保持了较高的帧率(30FPS以上)和较低的CPU占用率(约2%)。相较于传统OpenCV+FFmpeg的RTSP方案,海康SDK直接取流在实时性方面具有明显优势。

xiaohouzi112233的博客 2607

poj 4047 Garden

金华邀请赛的题,可惜现场赛我sb了,没想出来,还是队友想的……还是要不断的练习呀,隔断时间不练习就不会了 #include #include #include using namespace std; #define lson l,m,rt #define rson m+1,r,rt const int maxn=222222; int d[4*maxn],n,k

态度决定高度 873

ESP8266+ITR8307实战:如何用反射式光电管实现5cm远距离检测(附避坑指南)

本文详细介绍了如何利用ESP8266的ADC功能与ITR8307反射式光电管,通过调制解调、硬件电路优化及软件同步采样策略,实现5cm稳定远距离检测。文章提供了完整的硬件设计、代码实现与调优避坑指南,有效解决了环境光干扰与信号衰减难题,适用于智能车、自动化等需要可靠非接触检测的项目。

rgv234567的博客 263

cellchat安装

cellchat

m0_65188455的博客 5443

POJ - 4047 Garden(线段树成段更新,查询最值)

题意:含n个元素的序列 ,有q个操作。 操作( p x y)有三种: 0 x y :把第x个的值改为y 1 x y:交换第x个和第y个的值 2 x y:问区间[x,y]里面连续k个的子序列的最大和 思路:先处理序列,SumK[i]表示从i开始的k个数的和,然后线段树建树,成段更新,查询。更新只要处理成对区间最值得加减就可以了。 成段更新还是不熟悉,于是顺便做了 POJ - 3468 A Simple Problem with Integers,也是成段更新,查询为区间元素和,有些不同。

luciozhang的博客 787

某城商银行生产容器云平台详细设计方案分享及经验总结

AS3模式的CIS容器部署在K8S集群内,作为F5的控制器,CIS容器通过对K8S集群内Configmap资源进行监控,将Configmap资源中的内容转化为F5的配置,将配置推送给 F5 ,CIS容器还通过K8S标准的API接口完成业务发现和实时监听集群内Pod的变化,一旦Pod发生变化,相应的更新会及时推送给F5,并完成更新。容器技术发展非常迅速,现在应用大多以容器作为承载介质,前两年在容器云上承载的应用类型主要是Web类,随着容器云领域的不断发展,越来越多的应用类型将迁移至容器云,包括有状态应用。

qq_61890005的博客 856

poj 4047 Garden(线段树)

http://poj.org/problem?id=4047 求给定区间连续k个值和的最大值,有单点更改和交换操作。 这题主要是建树,以每个节点开始的连续k个值的和作为一个节点,这样共有n-k+1个节点,更新时计算出更新的点所在节点的范围,更新值为 新值-旧值。 交换即为两次更新,线段树记录节点最大值。code:#include<cstdlib>#include<cctype...

weixin_33671935的博客 116

【传感器模块项目实战】自动驾驶/机器人相关传感器原理及标定

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、IMU二、相机三、激光雷达四、轮速里程计五、GPS/RTK六、毫米波雷达总结 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对**【自动驾驶相关传感器原理及标定】**做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、IMU IMU惯导系统的特性(imu_calc函数功能) IMU运行的

qq_35635374的博客 1231

使用自制的NTC测量模块测试Plecs的热仿真效果

可以测试:您完全可以用这个模型来测试热仿真。NTC 模型是连接电气域和热域的关键桥梁。实现闭环:通过这种方式,您创建了一个高度真实的正反馈闭环系统:负载增加 -> 损耗增加 -> 温度升高 -> NTC 阻值变化 -> 控制电路可能因此调整(如降低频率或电流)-> 损耗变化 -> 温度变化。应用场景:这对于设计过温保护 (OTP) 电路风扇控制系统以及分析热失控条件非常有用。单位:确保热域中使用的单位( Kelvin 或 Celsius )与您的 C-Script 模型输入期望的单位一致。

311

POJ-4047-线段树

#include #include #include #include #include #include #include using namespace std; const int maxn = 200009; int n, nn, m, k; int a[maxn], b[maxn]; struct tree { int l, r, v, lazy, mid;

walk_up的专栏 534

第38节:cesium 风场效果(含源码+视频)

cesium 风场效果

qq_29384639的博客 2329

POJ 4047 Garden 线段树

这题只要想出怎么建树就简单了吧。 他问的是连续k个值最大的是多少 就可以用1~k之和,2~k+1之和,3~k+2之和.......做为结点。 然后就发现,变成了简单的区间更新和区间查询问题了。 #include #include #include #include #include #include #include #include #include #define e

水 1295

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

POJ 4047 Garden (线段树)

题意:输入N,M,K。有N个点,每个点有一个值,然后有M个操作 0 x y 表示将x的值赋为y;  1 x y 表示将x和y互换下位置(相应值也互换) ; 2 x y 表示询问[x,y]内连续K个数和的最大值。 一开始想用每个点来建树,发现不好维护区间内连续K个数的和的最大值。 但如果转化一下,因为K是定值,将[x,x+k-1]区间的和看做一个点,这样以连续K个数和作为点,共有N-K+

Paradiser 1029

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

POJ【4047】——Problem D. Garden 线段树

DescriptionThere are n flowerpots in Daniel’s garden. These flowerpots are place positions, and these n positions are numbered from 1 to n. Each flower is assigned an aesthetic value. The aesthetic val

绝尘 617

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

POJ 4047 Garden(线段树)

这个题目,emmm,PDF格式,我复制出来实在是没啥格式可言,这里就不挂题目了。 参考题解 有n个连续的一维上的点,每个点有一个美丽值。 每次有三种操作: 1、将x点的美丽值改为y。 2、将x、y交换 3、查询[x y]间,连续k个点的美丽值总和的最大值。 这里我是看的题解的做法,利用线段树,叶子i表示[i i+k]美丽值总和,然后每个点维护一个区间最大值。每个位置向前取k个数,作为这个位置的结果...

Steve·Curcy 195

POJ 2012金华邀请赛 (持续更新)

第一题,水题,但是题目读了很久,英语功底果然很差,主要是第二次排序的时候是按位排序,先按个位从小到大,然后是十位从小到大。题目描述太奇葩,这句话领会了很久。。 POJ 4044 #include #include #include #include #include #include #include #include #include #include #includ

just_water 1591

poj 4047 Garden 2012金华邀请赛 线段树

/* 三种操作 0 x y 把x位置的值改成y 1 x y 交换x与y位置的值 2 x y 统计[x,y]中连续k个值的最大值 我们把1-k的和值作为b[1],2-(k+1)的和值作为b[2],以此类推 那么可以建立一棵[1,n-k+1]的线段树 求连续k个和的最大值,退化为求某个区间的最值问题 线段树中有延迟操作,优化时间效率 */ #include #include #include #

Join Hands 3504

poj 4047 Garden 线段树lazy标记与成段更新

线段树lazy标记技术副题详解

sepNINE的专栏 782

POJ 4047 Garden 线段树 区间更新

给出一个n个元素的序列,序列有正数也有负数 支持3个操作: p x y 0.p=0时,把第x个的值改为y 1.p=1时,交换第x个和第y个的值 2.p=2时,问区间[x,y]里面连续k个的子序列的最大和(保证y-x+1>=k) 我们只要定义数组v v[i]表示原序列中,从第i个开始,连续k个元素的值的和 然后我们只需要维护一棵线段树,树的叶子节点表示数组v 树的节点维...

weixin_30412577的博客 111

POJ - 4047 Garden 线段树 区间更新

题目链接:点击查看 题意: 给出一个N个数的序列以及一个k(0&lt;k&lt;=n&lt;=200000),m个操作p,x,y,其中 p=0:将x位置的数替换为y p=1:将x y位置的数互换 p=2:  查询x-y位置区间连续k个数的和的最大值 题解:每个位置向前取k个数,作为这个位置的结果,线段树维护下每个区间的最大值即可,当改变一个位置p 的数时,把他所影响的区间(p,p+k-...

还我笑颜 156

poj 4047金华邀请赛 D题 (线段树+lazy优化)

/*题意: 给出一个N个数的序列以及一个k(0<k<=n<=200000),m个操作p,x,y,其中 p=0:将x位置的数替换为y p=1:将x y位置的数互换 p=2: 查询x-y位置区间连续k个数的和的最大值 分析:因为要求连续区间的最大,我们可以把区间和当做一个节点,这样区间就代表一个点,点就代表一个区间了,这样就可以把原来1~n个数重新分为1~n-k+1了,所以我们只要建一颗总节点范围为

Weiguang_123的专栏 2125

Poj 4047 Garden /2012金华邀请赛D题(线段树)

题意:给出长度为200000的数列,进行200000次下列操作: 0 x y 将x的值置为y 1 x y 交换x和y的值 2 x y 求[x,y]区间内和最大的一个连续的长度为k的区间(y-x>k) 解法:显而易见的线段树开始一直想维护每个区间的最大k区间,但是一直想不出怎么维护父节点和子节点的关系。估计如果实在现场会困死在此题。。。        于是需要转换一下思维,把点当做区间把区

新博客地址:sensirly.github.io 2180

poj 4047 Garden(线段树,伤!12年金华邀请赛D题)

我因为在更新a[t].flag的值的时候,手贱写成了a[t].flag=k而不是a[t].flag+=k,这么一个小错误卡掉了我的1A,今天周末的好心情和半个下午的时间。、 题目的思路很简单。我们从左到右,用b[i]存下来b[i...i+k-1]的和,将这个和的值更新到线段树中去,每次改变第x个花盆的值,我们将其看作修改从x-k+1到x这个范围内所有节点的值。就是将一个单点更新转换成成段更新。查

zizaimengzhongyue的专栏 680

POJ 4047 Garden

POJ 4047 Garden 线段树题目,很简单。需要预处理一下,树的节点中存储的元素为区间的两个端点,然后该段中最大的值,还有延迟标记。预处理的时候先求出所有长度为k的序列的长度,然后建树。具体的程序如下:开始的时候忽略了测试例子数,所以一直runtime error。 /* ID : csuchenan PEOG: D Garden LANG: C++ */ #include #inc

BootStar 425
上一篇: poj4044 白开水~
下一篇: 7.23
琴空
博客等级 码龄16年 48粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值