HDU - 1166 - 敌兵布阵( 树状数组 )

hdu1166敌兵布阵 树状数组&线段树 单点更新求区间和 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 84395    Accepted Submission(s): 35649 Problem Description C国的死对头A国这段时间正在进行军事演 阅读详情
题目链接:点击进入
题目

在这里插入图片描述

思路

树状数组实现 -> 单点修改 + 区间查询
( 这题线段树也可以写,不过树状数组码量要小 )

代码
// Problem: 敌兵布阵
// Contest: Virtual Judge - HDU
// URL: https://vjudge.net/problem/HDU-1166
// Memory Limit: 32 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

//#pragma GCC optimize(3)//O3
//#pragma GCC optimize(2)//O2
#include<iostream>
#include<string>
#include<map>
#include<set>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#define X first
#define Y second
#define best 131 
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define lowbit(x) x & -x
#define inf 0x3f3f3f3f
//#define int long long
//#define double long double
//#define rep(i,x,y) for(register int i = x; i <= y;++i)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double pai=acos(-1.0);
const int maxn=1e6+10;
const int mod=998244353;
const double eps=1e-9;
const int N=5e3+10;
/*--------------------------------------------*/
inline int read()
{
    int k = 0, f = 1 ;
    char c = getchar() ;
    while(!isdigit(c)){if(c == '-') f = -1 ;c = getchar() ;}
    while(isdigit(c)) k = (k << 1) + (k << 3) + c - 48 ,c = getchar() ;
    return k * f ;
}
/*--------------------------------------------*/

int t,n,a[maxn],c[maxn],tot;
void add(int x,int val)
{
	for(int i=x;i<=n;i+=lowbit(i))
		c[i]+=val;
}
int getsum(int x)
{
	int sum=0;
	for(int i=x;i>=1;i-=lowbit(i))
		sum+=c[i];
	return sum;
}
int main() 
{
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>t;
	while(t--)
	{
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			add(i,a[i]);
		}
		string s;
		cout<<"Case "<<++tot<<":"<<endl;
		while(cin>>s)
		{
			if(s=="End") break;
			int x,y;
			cin>>x>>y;
			if(s[0]=='Q')
				cout<<getsum(y)-getsum(x-1)<<endl;
			else if(s[0]=='S')
				add(x,-y);
			else if(s[0]=='A')
				add(x,y);
		}
		for(int i=1;i<=n;i++) c[i]=0;
	}
    return 0;
} 
拆开一个烧坏的IGBT模块,手把手教你识别过压、过流、过温的“案发现场” 本文详细解析了IGBT模块失效分析的实战技巧,通过观察铝层熔化纹路、焊锡溢出形态等物理痕迹,手把手教你识别过压、过流、过温的典型失效模式。文章提供了从基础工具包到现场快速诊断的完整流程,帮助工程师精准定位IGBT模块失效的根本原因。 阅读详情

相关推荐

从选型到阵列:基于ESP32-S3的智能硬件麦克风系统设计实战

本文详细介绍了基于ESP32-S3芯片设计智能硬件麦克风阵列的完整实战方案。从核心芯片选型、数字MEMS麦克风的参数解读与电路设计,到关键的声学结构密封、阵列布局策略,再到利用ESP-ADF框架构建音频处理流水线并集成回声消除、噪声抑制等算法,提供了从硬件到软件的全链路设计指南与避坑要点,旨在实现清晰、稳定的远场语音交互。

weixin_29173777的博客 266

HDU - 1166 敌兵布阵(线段树,树状数组)

HDU - 1166 敌兵布阵 线段树 #include<stdio.h> #include<string.h> const int N = 50010; int w[N],n; struct Node { int l,r; int sum; }tr[N*4]; void pushup(int u) { tr[u].sum=tr[u<<1].sum+tr[u<<1|1].sum; } void build(int u,int l,int r)

00后的博客 790

专治疑难系列 - 解决打印机凭证冲突问题

一、问题描述 二、解决方法 三、问题已解决

Passerby_Wang的博客 2万+

HDU - 1166 (线段树区间查询,单点修改)

题目连接 题意: 区间查询,单点修改 第一行一个整数T,表示有T组数据。 每组数据第一行一个正整数N(N<=50000),表示敌人有N个工兵营地,接下来有N个正整数,第i个正整数ai代表第i个工兵 营地里开始时有ai个人(1<=ai<=...

Harington的博客 337

大模型推理常见采样策略:Top-k, Top-p, Temperature, Beam Search

大模型推理采样策略,举例通俗易懂汇总介绍

qq_43243579的博客 2万+

python轮胎缺陷检测_基于深度学习的轮胎缺陷无损检测与分类技术研究

基于深度学习的轮胎缺陷无损检测与分类技术研究【摘要】:随着汽车行业快速发展及汽车保有量的持续增长,大大增加了对轮胎的需求,而轮胎质量在很大程度上决定了轮胎的使用寿命,也是在行驶过程中对人们生命财产安全的保障,同时对轮胎进行在线质量检测也便于轮胎生产企业及时发现生产线中存在的不合格产品,以此来调整机械设备甚至轮胎的生产工艺,避免造成生产材料的浪费。因此,检测轮胎质量是轮胎生产过程中必不可缺少的一部分...

weixin_39689428的博客 1424

HDU-1166(线段树入门)

这个是很简单的一道线段树题目,当然肯定没有树状数组来这爽,但是作为练手的题目还是不错的... 分享给大家我的代码..大家看看有什么可取之处的没有 #include #include #include #include int N; struct Node{ int a; int b; int val; }tree[222222]; void Pushup(int i) {

李硕 1001

应用商店评论分析实战:Python逆向工程破解Google Play加密接口与NLP建模

在移动互联网时代,应用商店中的用户评论成为了开发者优化应用、提升用户体验的重要依据。然而,Google Play等应用商店对评论数据进行了加密处理,直接爬取难度较大。本文将介绍如何使用Python逆向工程破解Google Play的加密接口,实现对应用商店评论的实时采集,并结合NLP(自然语言处理)技术进行情感分析和主题建模,为开发者提供有价值的数据支持。

u014481728的博客 1347

HDU 1166(树状数组讲解)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视...

Eternally831143的博客 1355

视觉Transformer实战 | Transformer详解与实现

本文系统介绍了 Transformer 架构的核心原理与实现。相比传统 RNN 和 CNN,Transformer 凭借自注意力机制有效捕捉序列中的长距离依赖关系,支持并行训练,显著提升效率。其核心创新在于通过查询、键、值向量计算注意力权重,理解单词间的语义关联。架构包含编码器-解码器结构:编码器通过多头自注意力和前馈网络提取输入特征;解码器利用掩码自注意力和交叉注意力生成输出。本文使用 PyTorch 实现了缩放点积注意力、位置编码、层归一化等关键模块,并构建了完整的 Transformer 模型。

盼小辉丶的博客 4万+

实验7:机器学习油田产量预测-代码数据-完整代码数据可直接运行-计算机毕设

实验7:机器学习油田产量预测-代码数据-完整代码数据可直接运行-计算机毕设

机器学习深度学习业余选手 479

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

目录题目描述思路分析AC代码 题目描述 链接:https://vjudge.net/problem/hdu-1166 思路分析 由于涉及到整个区间的数据修改和查询,所以是一道线段树题目。 这里主要的就是记住模板: 贴个大佬博客:https://blog.youkuaiyun.com/queque_heiya/article/details/104166507 然后我就偷懒吧。。 AC代码 #include &...

nagisa2019的博客 549

YOLOv12改进策略【Neck】| 使用CARAFE轻量级通用上采样算子

CARAFE内容感知的特征重新组合。

Limiiiing的博客 664

【 HDU 1166】 敌兵布阵 树状数组从0到1

如果给你一个数组,让你求某个区间的和,你很自然会想到遍历一遍数组,复杂度是O(n),但是如果有多次询问呢,你也许会想到用前缀数组,通过O(n)的预处理,达到O(1)的查询,但是如果要更新某个元素的值呢,如果用前缀和的思想,每更新一个元素就会更新前缀数组,每次复杂度是O(n),如果有n次更改,复杂度为O(n^2)。有没有更快的呢,这时候树状数组就排上用场了,树状数组可以用来解决动态数组连续和的问题。...

天才小熊猫的博客 3277

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

HDU-1166-敌兵布阵(树状数组)

HDU-1166-敌兵布阵(树状数组) http://acm.hdu.edu.cn/showproblem.php?pid=1166 这题之前用线段树做的,现在用树状数组 先简单说下树状数组吧 如上图所示 c1 = a1 c2 = a1 + a2 c3 = a3 c4 = a1 + a2 + a3 + a4 c5 = a5 c6 = a5 + a6 c7 = a7

菜鸟的程序人生 4814

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【树状数组】HDU 1166 敌兵布阵

HDU 1166 敌兵布阵 题意:单点修改,区间查询 思路:树状数组模板题 思考:!!比线段树写的简短得多,但是忘了初始化树状数组QAQ…… #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <cmath> #inclu...

L_X_ 183

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

题目:HDU 1166 敌兵布阵 线段树模板题同时也是树状数组模板题 //Must so #include #define mem(a,x) memset(a,x,sizeof(a)) #define sqrt(n) sqrt((double)n) #define pow(a,b) pow((double)a,(int)b) #define inf 1<<29 #define NN 50004 using name

Must so 467

HDU1166 敌兵布阵 简单线段树 或树状数组

HDU1166敌兵布阵 最近线段树做的多了,简单线段树。树状数组就比较容易了。冲冲冲!!! 下面我用树状数组写的。 #include<iostream> #include<stdio.h> #include<cstring> #include<algorithm> #include<string> #include<...

an94460061的博客 240

树状数组板子题之一:hdu 1166 敌兵布阵

树状数组板子题之一:hdu 1166 敌兵布阵 题目链接:hdu 1166 敌兵布阵 Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,...

serendipity的博客 386

敌兵布阵 HDU - 1166(树状数组-模板&&线段树写法)

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

Learning_is_endless的博客 267

[HDU 1166]敌兵布阵[树状数组][入门]

题目链接:[HDU 1166]敌兵布阵[树状数组][入门] 题意分析: 查询区间敌兵数。 解题思路: 模板题啦,可以用各种方法过。这里当做树状数组入门。 推荐一篇博文来入门:http://blog.youkuaiyun.com/pi9nc/article/details/8779483#t1  博文的第二部分就是关于树状数组的。 个人感受: 整个树状数组我觉得最需要抓住的是sum数组是存储着什

闲停 671

hdu 1166 敌兵布阵(树状数组 | 线段树)

题目链接:hdu 1166 敌兵布阵 题目大意:略。 解题思路:树状数组的水题。这篇题解很好,适合初学树状数组的人。题解连接 #include #include const int N = 50005; const int M = 105; int n, v[N]; void add(int x, int val) { while (x <= n) {

不慌不忙、不急不躁 1643

敌兵布阵 HDU - 1166 (树状数组--点更新,区间查询)

敌兵布阵 HDU - 1166 (树状数组–点更新,区间查询) C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些...

weixin_43179892的博客 195

HDu1166敌兵布阵(树状数组)

HDu1166敌兵布阵(树状数组)这个题是用的树状数组做的,线段树也可以做,待会尝试一番。 某段区间的和的话,就用get(y)-get(x-1)来求得。我的:#include<iostream> #include<string> #include<cstdio> #include<cmath> #include<map> #include<algorithm> #include<cstring>

Everything can be done! 337

hdu 1166 敌兵布阵(树状数组)

题目链接:hdu 1166 敌兵布阵 题目大意:略。 解题思路:树状数组的水题。这篇题解很好,适合初学树状数组的人。题解连接 #include &lt;stdio.h&gt; #include &lt;string.h&gt; const int N = 50005; const int M = 105; int n, v[N]; void add(int x, int...

xiaoheliushuiya 141

HDU-1166 敌兵布阵(树状数组)

树状数组(Binary Indexed Tree(B.I.T))是能够完成下述操作的数据结构。 给一个初始值全为0的数列a1,a2,……,an 给定i,计算a1+a2+…+ai (sum) 给定i和x,执行ai += x (update) 由上图所知: C[1]=A[1]; C[2]=A[1]+A[2]; C[3]=A[3]; C[4]=A[1]+A[2]+A[3]+A[4]; C[5]=...

Sclong0218的博客 416
上一篇: P3368 【模板】树状数组 2( 区间修改 + 单点查询 )
下一篇: POJ - 3468 - A Simple Problem with Integers( 树状数组 -> 区间修改 + 区间查询 )
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值