hdu1166 敌兵布阵 - 树状数组学习

scGPT实战指南:如何用生成式AI加速你的单细胞多组学研究? 本文提供了scGPT在单细胞多组学研究中的实战指南。详细介绍了从环境部署、数据预处理到细胞类型注释与扰动预测等核心任务的操作流程。通过利用生成式AI和Transformer基础模型,scGPT能够显著加速分析,并提升细胞注释的准确性及基因调控网络推断的深度,为研究人员提供了强大的AI分析引擎。 阅读详情

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

Author
Windbreaker

Recommend
Eddy | We have carefully selected several similar problems for you: 1394 1698 1754 1542 1540


给大佬的博客赞一个->树状数组总结

树状数组学习

【lowbit】
一个数转化为二进制从末尾0的个数

【基本操作】

  • x + lowbit[x]是x的父节点
  • x - lowbit[x]是x之前内部结点,维护着x前面的一部分区间

【更新】
x以及x所有的父节点都要更新,所以x+=lowbit[x],直到x>n

【求和】
求1~x的和最方便,只需要把x以及x之前的内部结点全部加一遍,所以x-=lowbit[x],直到x<=0

【注意】
树状数组的开始一定是1,因为处理0的lowbit时会进入死循环

代码

/*
 * 树状数组 Binary Indexed Trees 练习
 * 题目:敌兵布阵 http://acm.hdu.edu.cn/showproblem.php?pid=1166 
 */

#include<stdio.h>
#define N_max 50010

//BinaryIndexedTree
struct  BIT {
    int c[N_max] = { 0 };//每个ci维护的都是1~i的最新和
    int lowbit[N_max] = { 0 };//反复用到的值不如先计算好
    int n;
    BIT(int _n = N_max) {
        n = _n;
        for (int i = 1; i <= N_max; ++i)lowbit[i] = (i&(-i));
    }
    void newBIT(int _n) {//初始化
        n = _n;
        for (int i = 1; i <= n; ++i)
            c[i] = 0;
    }
    //更新时向右(树的上层)更新
    void update(int x, int num) {
        while (x <= n) {
            c[x] += num;
            x += lowbit[x];
        }
    }
    //求和时向左依次求和
    int getsum(int x) {
        int s = 0;
        while (x > 0) {
            s += c[x];
            x -= lowbit[x];
        }
        return s;
    }
};

char q[6];//保存输入的命令
int main() {
    int kase;
    int a1, a2, b1, b2;
    int n;

    BIT sol;
    scanf("%d", &kase);
    for (int t = 1; t <= kase; ++t) {
        printf("Case %d:\n", t);

        scanf("%d", &n);
        sol.newBIT(n);
        for (int i = 1; i <= n; ++i) {
            scanf("%d", &a1);
            sol.update(i, a1);
        }
        while (~scanf("%s", q)) {
            if (q[0] == 'Q') {
                scanf("%d %d", &a1, &a2);
                b1 = sol.getsum(a1 - 1);
                b2 = sol.getsum(a2);
                printf("%d\n", b2 - b1);
            }
            else if (q[0] == 'A') {
                scanf("%d %d", &a1, &a2);
                sol.update(a1, a2);
            }
            else if (q[0] == 'S') {
                scanf("%d %d", &a1, &a2);
                sol.update(a1, -a2);
            }
            else if (q[0] == 'E')break;
        }
    }
}
k8s配置habor作为镜像地址之后,如果harbor中没有镜像,如何设置自动从阿里云官方镜像仓库下载 通过 Harbor 的远端仓库可以集中管理。如果你在上游设置了 image prefix 为 library,那么对外访问 harbor.your-domain.com/library/nginx:latest 就会被 Harbor 去上游拉取 registry.cn-hangzhou.aliyuncs.com/library/nginx:latest 并缓存。- 将集群中的镜像地址改为 Harbor 的域名,比如 harbor.your-domain.com/library/nginx:latest。 阅读详情

相关推荐

单细胞分析进阶:sctransform标准化在Seurat中的实战解析

本文深入解析了sctransform标准化方法在Seurat单细胞分析中的实战应用。通过对比传统对数标准化,sctransform能更有效地建模并剔除技术噪音,提升数据质量。文章提供了从环境配置、数据准备、核心参数解析到完整流程整合的详细指南,并针对常见问题给出解决方案,帮助研究者获得更清晰的细胞分群和更可靠的差异表达结果。

weixin_29248313的博客 150

【模板】树状数组

【模板】树状数组

脚踏实地,仰望星空 647

Chapter 4 Ripple-Based Control Technique Part I

本文介绍了DC-DC转换器的纹波控制技术,重点分析了迟滞控制、恒定开通时间控制、恒定关断时间控制等方案的工作原理及优缺点。纹波控制无需补偿网络,具有快速瞬态响应和结构简单的优势,特别适合电池供电应用。其中,恒定开通时间控制在轻载时能自动延长关断时间,实现伪定频工作;而恒定关断时间控制轻载效率较低。文章还讨论了纹波注入技术解决Boost转换器右半平面零点问题,并比较了不同控制方案在负载瞬态下的性能表现。最后指出基于纹波的控制技术在提高调节精度和降低EMI方面的改进方向。

2304_76736886的博客 1300

树状数组【模板】

/* ******************* ******************* HDU 1166 敌兵布阵 ******************* ******************* */ #include #include #include #include #include #include #include #include #include #includ

Puya的博客 324

服务器被黑?快速检测和识别系统中的恶意进程

在管理服务器时,检测和识别系统中的恶意进程至关重要。本文介绍了使用 `ps`、`top`、`htop` 等系统监控工具,分析日志文件,以及使用 `chkrootkit` 和 `rkhunter` 等安全工具的方法。通过这些步骤,可以有效地检测和处理恶意进程,确保系统的安全和稳定。

_midnight的博客 1416

告别环境依赖!用PyInstaller把PaddleOCR项目打包成独立EXE(附完整spec文件配置)

本文详细介绍了如何使用PyInstaller将PaddleOCR项目打包成独立EXE文件,彻底解决Python环境依赖问题。通过完整的spec文件配置和实战技巧,开发者可以轻松创建开箱即用的OCR工具,特别适合需要交付给非技术用户的场景。文章涵盖环境配置、模型打包、性能优化等关键环节,并提供了解决常见问题的方案。

weixin_33712987的博客 573

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

STM32G474的HRTIM实战:用CubeMX配置互补PWM驱动全桥电路(附移相算法代码)

本文详细介绍了如何使用STM32G474的HRTIM高分辨率定时器,通过CubeMX配置互补PWM驱动全桥电路,并附移相算法代码。内容涵盖HRTIM硬件架构解析、CubeMX配置全流程、移相控制算法实现及调试技巧,为数字电源和电机控制领域提供实用解决方案。

weixin_27017211的博客 480

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

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

天才小熊猫的博客 3277

Code Ocean 上传代码 手把手教程

对于一些学术期刊,录用前会让把代码上传到Code Ocean上,但上传过程可能会遇到一些问题,小编分享一下自己的上传经验。他们会进行验证,验证通过,将自动发布。点此运行即可,但是运行比较慢。

u014071947的博客 1万+

合肥工业大学嵌入式系统原理实验报告

GPKDAT 的6、7引脚设置低电平,设置GPKDAT = 0x30则34灯亮12灯灭,GPKDAT 的4、5、6、7引脚全为高电平,设置GPKDAT = 0xf0,则led灯全灭。注意在烧写时要连接主机后面的USB接口,烧写完成后,要关闭开发板电源,将S2拨动开关置于NAND位置,然后重新开启开发板电源, 则开发板运行刚刚烧入的裸机程序。实验修改要求:在延时不变的条件下,将原程序中四个LED全亮,然后全灭的显示状态,修改为“四个全亮,然后1和2亮(3和4灭),然后3和4亮(1和2灭),最后全灭”。

Martin-share的博客 3097

HDU 1166-敌兵布阵

HDU 1166-敌兵布阵 题意: 给一个数组,有查询、增加、减少三种操作 对于每次询问 输出从i到j所有元素的和 思路:树状数组裸题 特别的 对于减少操作 只需向x位置更新-y即可 #include<iostream> #include<cstdio> #include<queue> #include<string> #include<map> #include<vector> #include<set> #include

zzqwtc的博客 1995

AI 时代嵌入式工程师的能力模型与学习路线:全系列收官

AI 时代嵌入式工程师的能力模型与学习路线:全系列收官

weixin_42162924的博客 32

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

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

L_X_ 183

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

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

AC_Dreameng 2346

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

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

serendipity的博客 386

jre9下载 jdk9

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

HDU 1166 | 敌兵布阵 —— 树状数组

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

益达的小作坊 473

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 敌兵布阵

树状数组的入门基础题目

mullerwch的专栏 776

hdu1166-敌兵布阵(树状数组)

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 题目原文: 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 135411Accepted Submission...

Lancetop的博客 288

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

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

Learning_is_endless的博客 267

hdu1166-敌兵布阵

题目链接                                                                                    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s):...

DaDaguai001的博客 311

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

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

dbt3498的博客 300

(树状数组)敌兵布阵

[HDU1166]敌兵布阵 树状数组板子题: #include<bits/stdc++.h> const int N=5e4+10; const int mod=1e7+9; const int maxn=0x3f3f3f3f; const int minn=0xc0c0c0c0; const int inf=99999999; using namespace std; int a[N...

Z7784562的博客 283

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

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

queuelovestack的专栏 911
上一篇: nowcoder 84 B 漂亮的树
下一篇: 牛客网 106 J-Various Tree (BFS复习)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值