HDOJ1166 敌兵布阵(线段树)

Android14 Qcom 从Framework到Driver带你打开WIFI(二) 上篇文章讲到了UI打开WIFI以后,逐步调用到加载底层驱动以及通知等相关流程。这篇接着上文继续往下看WIFI ON的后续动作。 阅读详情

Problem Description
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。
中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,马上汇报第3个营地到第10个营地共有多少人!”Tidy就要马上开始计算这一段的总人数并汇报。但敌兵营地的人数经常变动,而Derek每次询问的段都不一样,所以Tidy不得不每次都一个一个营地的去数,很快就精疲力尽了,Derek对Tidy的计算速度越来越不满:"你个死肥仔,算得这么慢,我炒你鱿鱼!”Tidy想:“你自己来算算看,这可真是一项累人的工作!我恨不得你炒我鱿鱼呢!”无奈之下,Tidy只好打电话向计算机专家Windbreaker求救,Windbreaker说:“死肥仔,叫你平时做多点acm题和看多点算法书,现在尝到苦果了吧!”Tidy说:"我知错了。。。"但Windbreaker已经挂掉电话了。Tidy很苦恼,这么算他真的会崩溃的,聪明的读者,你能写个程序帮他完成这项工作吗?不过如果你的程序效率不够高的话,Tidy还是会受到Derek的责骂的.
 

Input
第一行一个整数T,表示有T组数据。
每组数据第一行一个正整数N(N<=50000),表示敌人有N个工兵营地,接下来有N个正整数,第i个正整数ai代表第i个工兵营地里开始时有ai个人(1<=ai<=50)。
接下来每行有一条命令,命令有4种形式:
(1) Add i j,i和j为正整数,表示第i个营地增加j个人(j不超过30)
(2)Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30);
(3)Query i j ,i和j为正整数,i<=j,表示询问第i到第j个营地的总人数;
(4)End 表示结束,这条命令在每组数据最后出现;
每组数据最多有40000条命令
 

Output
对第i组数据,首先输出“Case i:”和回车,
对于每个Query询问,输出一个整数并回车,表示询问的段中的总人数,这个数保持在int以内。
 

Sample Input
1 10 1 2 3 4 5 6 7 8 9 10 Query 1 3 Add 3 6 Query 2 7 Sub 10 2 Add 6 3 Query 3 10 End
 

Sample Output
Case 1: 6 33 59
 



线段树模板题~ 单点更新


AC代码:


#include "iostream"
#include "cstdio"
#include "cstring"
#include "algorithm"
using namespace std;
#define lson l, m, rt << 1
#define rson m + 1, r, rt << 1 | 1
const int maxn = 50005;
int sum[maxn << 2];
void pushplus(int rt)
{
    sum[rt] = sum[rt << 1] + sum[rt << 1 | 1];
}
void build(int l, int r, int rt)
{
    if(l == r) {
        scanf("%d", &sum[rt]);
        return ;
    }
    int m = (l + r) >> 1;
    build(lson);
    build(rson);
    pushplus(rt);
}
void updata(int p, int add, int l, int r, int rt)
{
    if(l == r) {
        sum[rt] += add;
        return;
    }
    int m = (l + r) >> 1;
    if(p <= m) updata(p, add, lson);
    else updata(p, add, rson);
    pushplus(rt);
}
int query(int L, int R, int l, int r, int rt)
{
    if(L <= l && r <= R) return sum[rt];
    int m = (l + r) >> 1, ans = 0;
    if(L <= m) ans += query(L, R, lson);
    if(R > m) ans += query(L, R, rson);
    return ans;
}
int main(int argc, char const *argv[])
{
    int t;
    scanf("%d", &t);
    for(int i = 1; i <= t; ++i) {
        printf("Case %d:\n", i);
        int n;
        scanf("%d", &n);
        build(1, n, 1);
        char op[10];
        while(scanf("%s", op) && op[0] != 'E') {
            int a, b;
            scanf("%d%d", &a, &b);
            if(op[0] == 'Q') printf("%d\n", query(a, b, 1, n, 1));
            else if(op[0] == 'S') updata(a, -b, 1, n, 1);
            else updata(a, b, 1, n, 1);
        }
    }
    return 0;
}


AI应用架构师实战:半导体器件仿真AI智能体系统搭建 半导体器件仿真(如MOSFET、FinFET等)是芯片设计的核心环节,传统流程依赖专家手动调参、多物理场仿真引擎(如TCAD)耗时(小时级至天级)、经验难以沉淀,导致研发周期长、成本高。如何构建一个AI智能体系统,实现仿真任务的自动化调度、参数智能优化、结果分析与知识沉淀,成为提升半导体研发效率的关键挑战。 阅读详情

相关推荐

labview设置工业摄像头外部触发

使用labview对海康MV-CA013-GM相机设置外部触发。 一、硬件部分 1、硬件引脚定义 2、触发模式设置 相机的触发模式分为两种,一种是内触发模式、另外一种是外触发模式。 3、接线图 信号线的地要跟给信号的设备共地。信号线给高电平时触发拍照。 二、软件部分 1、创建vision acquisition 2、选择使用的摄像头。 3、选择模式。 4、在Acquisition Control中设置这些选项。 5、设置保存图片路径 设置保存路径和保存图片的格式。点击完成即可 参考:https:/

qq_43493715的博客 5665

HDOJ 1166 敌兵布阵 线段树: 单点更新 成段求和

//HDOJ 1166 敌兵布阵 线段树: 单点更新 成段求和 /* 题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1166 题意: N个工兵营地(N<=50000),已知每个工兵营地的初始人数, M次(M<=40000)操作 : 1、在第i个营地增加j个人; 2、在第i个营地减少j个人;

God horses are clouds 714

QT快速配置MSVC2017编译环境(3分钟极简指南)

本文提供了一份3分钟极简指南,帮助开发者快速配置QT的MSVC2017编译环境。通过断网安装、精准勾选组件和配置QT Creator编译器路径等步骤,大幅提升QT开发效率。MSVC2017作为Windows平台高性能C++编译器,特别适合处理大型QT项目,编译速度优势明显。

weixin_30399821的博客 503

HDOJ1166 敌兵布阵 【线段树】

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 39591    Accepted Submission(s): 16726 Problem Description C国的死对头A国这段时间正在进行军事演

长风的专栏 1114

Tauri开发环境配置避坑指南:从Rust到Node.js的全流程实战

本文是一份详尽的Tauri开发环境配置实战指南,重点解析了从Rust工具链安装、Node.js版本管理到IDE配置的全流程。文章深入探讨了包管理器选择、依赖锁定、网络镜像加速等关键环节,并提供了开发与构建过程中典型问题的排查思路与解决方案,旨在帮助开发者高效避坑,顺利搭建跨平台桌面应用开发环境。

w3x4y的博客 292

(MATLAB)一维信号峰值检测findpeaks

一维信号波峰波谷检测,峰值、峰宽、到达时间计算。MATLAB自带的findpeaks函数能完成这一任务,在这里分享其基本用法与特殊用法。

HPC_ZY 2万+

线段树(单点更新)/树状数组 HDOJ 1166 敌兵布阵

题目传送门 1 /* 2 线段树基本功能:区间值的和,修改某个值 3 */ 4 #include <cstdio> 5 #include <cstring> 6 #define lson l, m, rt << 1 7 #define rson m+1, r, rt << 1|1 8 9 con...

weixin_33827965的博客 131

海天注塑机弘讯控制器Modbus数据采集实战指南

工业设备数据采集是MES系统、设备监控和工艺追溯的基础,其中注塑机联网是车间数字化的关键环节。Modbus协议作为工业通信的事实标准,以简单、开放、低成本的优势,成为海天注塑机弘讯控制器对外提供数据的主要方式。理解控制器型号与通信参数、捋清寄存器点位表与字节序规则,是稳定采集的前提。通过RS485串口或以太网轮询,可以实时获取产量、温度、压力、报警等关键数据,进而支撑OEE统计、质量追溯与异常监控。本文基于实战项目,以海天注塑机弘讯控制器为例,梳理从接线、参数配置到点位验证的完整流程,为现场工程师提供一套可

weixin_28733777的博客 905

线段树——HDOJ 1166 敌兵布阵 解题报告

线段树入门题目

plsxysam的专栏 558

【Python_Zebra斑马打印机编程学习笔记(二)】基于BarTender将btw文件转换为zpl文件

本文介绍如何基于 BarTender 软件将 btw 格式的文件转换为 zpl 格式的文件,有需要的读者可以点赞收藏,也欢迎在评论区进行讨论。

禾戊之昂的博客 3375

手把手教你完成基于YOLOv8的水果/商品/食堂/蔬菜/饮料/书籍识别与计价系统,前台+后台管理系统

手把手教你完成基于YOLOv8的商店的水果/商品/食堂/蔬菜/饮料/书籍识别与计价系统,前台+后台管理员系统,可进行目标检测的操作和展示,实现对图片、视频和摄像头的实时目标检测

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2456

HDOJ 1166 敌兵布阵 (线段树)

题目: Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国...

weixin_30569033的博客 126

GLM-4本地部署的实战教程

本文主要介绍了GLM-4-9B本地部署的实战教程,希望对学习和使用大模型的同学们有所帮助。 文章目录 1. 前言 2. 配置环境 2.1 安装虚拟环境 2.2 安装依赖库 2.3 下载模型文件 3. 运行glm-4-9b-chat

herosunly的博客 25万+

hdoj 1166 敌兵布阵 【单点线段树】

策略:如题 刚开始

shengweisong 800

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HDOJ1166 敌兵布阵【线段树】

  Problem : 1166 ( 敌兵布阵 )     Judge Status : AcceptedRunId : 5862942    Language : GCC    Author : qq1203456195 #include &lt;stdio.h&gt; #define lson l,m,rt&lt;&lt;1 #define rson m+1,r,rt&lt;&lt...

weixin_33672109的博客 80

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HDOJ 1166 敌兵布阵(线段树)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 77687    Accepted Submission(s): 32743 Problem Description C国的死对头A国这段时间正在进行军事演习,所以

想飞的小菜鸡 519

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

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

[HDU]HDOJ1166 敌兵布阵 基础线段树

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的...

LeeCarry的博客 869

hdoj 1166 敌兵布阵 【线段树】

//学习线段树Ing 看的这篇blog :http://www.notonlysuccess.com/index.php/segment-tree-complete/ 稍微改了一下 #include #define LSON(x) x<<1 #define RSON(x) x<<1|1 #define MAXLEN 50005 int sum[MAXLEN<<2]; int L, R; voi

我辈皆愚 849

【HDOJ】1166 敌兵布阵 (线段树)

【Problem】http://acm.hdu.edu.cn/showproblem.php?pid=1166         给定一个数组a[]和一系列的操作,应答每个询问。         操作:Add i x:a[i]+=x  Sub i x:a[i]-=x  Query l r:询问Σ(a[l..r]) 【Analysis】         对于Sub i x操作,完全可以用Add

为美好世界献上珂学 516

hdoj 1166 敌兵布阵(线段树)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 40467    Accepted Submission(s): 17098 Problem Description C国的死对头A国这段时间正在进行军

ZPL 455

HDOJ 1166 敌兵布阵 树状数组、线段树

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 45245    Accepted Submission(s): 19244 Problem Description C国的死对头A国这段时间正在进行军事演习,所以

小人物的草稿本 840

HDOJ 1166 敌兵布阵 (树状数组 & 线段树)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 62619    Accepted Submission(s): 26439 Problem Description C国的死对头A国这段时间正在进行军事演

jianjun的专栏 502

线段树 hdoj 1166 敌兵布阵

单点更新,区间求和#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;string.h&gt; using namespace std; const int MAXN = 50000+5; int n; int tree[MAXN&lt;&lt;2]; int add[MAXN&lt;&lt;2]; int a[MAXN&lt...

Unyielding will 290

HDOJ 题目 1166 敌兵布阵(线段树,模板)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46704    Accepted Submission(s): 19806 Problem Description C国的死对头A国这段时间正在进行军事演

Jogging_Clown 715

hdoj 敌兵布阵 1166 (线段树 模板)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 62027    Accepted Submission(s): 26214 Problem Description C国的死对头A国这段时间正在进行军事演习,所以

yanghui07216的博客 438

hdoj--1166 敌兵布阵(树状数组or线段树)

1166 敌兵布阵题解线段树:#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std;#define Avg(x, y) ((x & y) + ((x ^ y) >> 1))const int maxn = 50000 + 5; int tree[3 * max

许少y 408
上一篇: HDOJ1829 A Bug's Life(并查集)
下一篇: HDOJ2795 Billboard(线段树)
GKHack
博客等级 码龄11年 48粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值