hdu 4267 A Simple Problem with Integers(树状数组)

阿里云学生机2核4G,30分钟搞定DNF台服联机(CentOS 7.6保姆级教程) 本文提供阿里云学生机2核4G搭建DNF台服联机的详细教程,涵盖服务器选购、网络配置、服务端部署及客户端联机设置。通过CentOS 7.6系统优化和端口配置,30分钟内即可完成搭建,适合学生和技术爱好者低成本实现游戏联机体验。 阅读详情

A Simple Problem with Integers

Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6241    Accepted Submission(s): 2012


Problem Description
Let A1, A2, ... , AN be N elements. You need to deal with two kinds of operations. One type of operation is to add a given number to a few numbers in a given interval. The other is to query the value of some element.
 

Input
There are a lot of test cases. 
The first line contains an integer N. (1 <= N <= 50000)
The second line contains N numbers which are the initial values of A1, A2, ... , AN. (-10,000,000 <= the initial value of Ai <= 10,000,000)
The third line contains an integer Q. (1 <= Q <= 50000)
Each of the following Q lines represents an operation.
"1 a b k c" means adding c to each of Ai which satisfies a <= i <= b and (i - a) % k == 0. (1 <= a <= b <= N, 1 <= k <= 10, -1,000 <= c <= 1,000)
"2 a" means querying the value of Aa. (1 <= a <= N)
 

Output
For each test case, output several lines to answer all query operations.
 

Sample Input

 
4 1 1 1 1 14 2 1 2 2 2 3 2 4 1 2 3 1 2 2 1 2 2 2 3 2 4 1 1 4 2 1 2 1 2 2 2 3 2 4
 

Sample Output

 
1 1 1 1 1 3 3 1 2 3 4 1
 

Source
 

Recommend
liuyiding   |   We have carefully selected several similar problems for you:   4276  4274  4273  4272  4270 

题意:

给了N个数,有一些操作。

操作一是让a到b区间的满足(i-a)%k=0的数,加上c。

操作二是询问位置为I的数为多少。

思路:

借鉴这个http://blog.sina.com.cn/s/blog_a047b3eb010171cc.html

想到树状数组有一种技巧,我们可以对a和b+1两个点单点更新,让a位置+c,b+1位置-c,这样在用树状数组求和的时候,对于a到b的点都是加上了c。所以这样我们让a到b区间无限制的都加上了c,但是我们只想让满足(i-a)%k=0的位置上的点+c。

由(i-a)%k=0可以推出 i%k=a%k,也就是只有当i%k恰好等于a%k时这些数才加上了c。所以我们用树状数组查询的时候,只查满足a%k的数。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=50005;
typedef long long ll;
int tr[maxn][11][10];
int arr[maxn];
int lowbit(int i)
{
    return i&(-i);
}
int query(int n)
{
    int sum=0;
    for(int j=1;j<=10;j++)
    {
        for(int i=n;i>0;i-=lowbit(i))
        {
            sum+=tr[i][j][n%j];
        }
    }
    return sum+arr[n];
}
void update(int a,int k,int c,int mod,int n)
{
    for(int i=a;i<=n;i+=lowbit(i))
    {
        tr[i][k][mod]+=c;
    }
}
int main()
{
    int n,q,a,b,k,c,op;
    while(~scanf("%d",&n))
    {
        memset(tr,0,sizeof(tr));
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&arr[i]);
        }
        scanf("%d",&q);
        for(int i=1;i<=q;i++)
        {
            scanf("%d",&op);
            if(op==2)
            {
                scanf("%d",&a);
                printf("%d\n",query(a));
            }
            else
            {
                scanf("%d%d%d%d",&a,&b,&k,&c);
                update(a,k,c,a%k,n);
                update(b+1,k,-c,a%k,n);
            }
        }
    }
    return 0;
}


基于Python的FTA协定内容爬虫实战:从数据抓取到智能分析 本文将详细介绍如何使用Python构建一个高效的FTA(自由贸易协定)内容爬虫,涵盖最新技术如Playwright、异步IO、智能解析等。通过本教程,您将学会如何从各类政府网站和国际组织平台抓取结构化FTA数据,并对其进行清洗、存储和分析。文章包含完整的代码实现和最佳实践指南,适合中高级Python开发者学习网络爬虫开发。 阅读详情

相关推荐

【rPPG】基于多光谱摄像头的非接触式睡眠血氧监测系统(传统建模方法解析)

本文深入解析了基于多光谱摄像头的非接触式睡眠血氧监测系统,重点探讨了rPPG技术的原理、硬件设计及传统建模方法。通过多光谱摄像头捕捉皮肤微弱光学变化,实现医疗级精度的心率和血氧监测,特别适合长期睡眠监测场景。文章详细介绍了摄像头选型、照明系统设计以及PBV模型等核心技术,并对比了与传统传感器的性能差异。

weixin_30300225的博客 562

HDOJ 4267 A Simple Problem with Integers 树状数组

建10*10个树状数组,tree[x][y]tree[x][y]表示从x开始等差为y的树状数组.对于每个询问a,统计与a相关的的数组数组的和.A Simple Problem with IntegersTime Limit: 5000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio

码代码的猿猿 894

让AI稳定生成流程图:基于Skill与Mermaid的工程化实践

流程图是软件工程中沟通业务逻辑的通用语言,但其绘制与维护却长期依赖手工工具,导致文档更新滞后、协作成本高。随着大语言模型技术的成熟,自然语言生成代码已成为可落地的技术路径,而Mermaid作为一款文本化图表语法,凭借其可版本管理、可自动渲染和可嵌入文档的优势,正逐步取代传统绘图工具。要让AI稳定输出合格的流程图,关键在于为模型定义一套清晰的Skill规则,约束输入结构、处理逻辑和输出格式。本文从流程图的工程痛点出发,介绍如何利用大模型将自然语言描述转化为结构化文本,再通过Mermaid CLI渲染成可视化图

weixin_42548782的博客 311

hdu 4267

A Simple Problem with Integers Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5282    Accepted Submission(s): 1674 Problem Descriptio

MR CODER 345

别再只盯着MES了!半导体/面板厂CIM系统全家桶(EAP/YMS/SPC)保姆级入门指南

本文深入解析半导体制造中的CIM系统,涵盖EAP、YMS和SPC等关键子系统的协同工作。通过实战案例和技术细节,展示如何利用CIM系统提升生产效率、良率管理和设备维护,为半导体/面板厂提供全面的实施指南和优化策略。

weixin_33693070的博客 464

别再到处找了!2024最新银河麒麟V10全版本(飞腾/龙芯/兆芯)官方下载与安装保姆级教程

本文提供2024年银河麒麟V10操作系统全版本(飞腾/龙芯/兆芯)的官方下载与安装保姆级教程,涵盖版本选择、镜像获取、启动盘制作及安装优化等关键步骤,助您高效部署国产操作系统。

weixin_26846533的博客 485

hdoj 4267 A Simple Problem with Integers 【线段树】

题目链接:hdoj 4267 A Simple Problem with Integers A Simple Problem with Integers Time Limit: 5000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5030 Accepte

世界很大 882

LangChain4j-针对性操作Function-call+系统预设角色

如果我们想要对一些敏感信息进行针对化的操作,不仅仅是接口大模型去进行回复。比如我们现在数据库里面有一些菜品,那么用户提问,店里有多少套餐,那么云端大模型肯定是不知道的,我们希望捕获这些关键字然后进行自己的业务查询或者处理,这个时候就可以使用function-call。

DDDDDouble的博客 454

HDU 4267 A Simple Problem with Integers(12年长春 线段树)

转载请注明出处,谢谢http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526       by---cxlove  题目:给出n个数,每次将一段区间内满足(i-l)%k==0  (r>=i>=l) 的数ai增加c http://acm.hdu.edu.cn/showproblem.php?pid=4267  比较容易往线段树上想的。但

窝不是爱酱,喵~~~~ 5957

华为od 面试八股文_C++_02_含答案

华为od 面试八股文_C++_02_含答案

MISAYAONE的博客 3121

从零开始学习CANoe(三)—— 系统变量的创建和使用

从零开始学习CANoe(三)—— 系统变量的创建和使用

蚂蚁小兵 1万+

HDU 4267 经典树状数组

题目链接A Simple Problem with IntegersTime Limit: 5000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4005 Accepted Submission(s): 1245Problem DescriptionLet A1

ZQDNR 558

YOLOv11改进 | 主干/Backbone篇 | 轻量级移动端网络ShuffleNetV2(附代码+修改教程)

本文给大家带来的改进内容是ShuffleNetV2,这是一种为移动设备设计的高效CNN架构。其在ShuffleNetV1的基础上强调除了FLOPs之外,还应考虑速度、内存访问成本和平台特性。(我在YOLOv11n上修改该主干降低了GFLOPs,但是参数量还是有一定上涨,其非常适合轻量化的读者来使用,同时精度也有一定程度的上涨)。本文通过介绍其主要框架原理,然后教你如何添加该网络结构到网络模型中。

Snu77的博客 3387

HDU 4267 A Simple Problem with Integers 树状数组

来源:http://acm.hdu.edu.cn/showproblem.php?pid=4267 题意:给一些数,有两种操作,一种是在[a,b] 区间内,对(i - a)% k == 0 的加value,另一种操作是询问某个位置的值。 思路:很容易想到这是一个插线问点的问题,但是在更新值 的时候和平常的更新不同,这道题又增加了一个限制条件。因为k比较小( 代码: #include #i

4409

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HDU 4267 A Simple Problem with Integers(树状数组)

A Simple Problem with Integers Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4475    Accepted Submission(s): 1378 Problem Descriptio

叶孤心的专栏 1030

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

A Simple Problem with Integers(树状数组HDU4267)

A Simple Problem with Integers Time Limit: 5000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4494 Accepted Submission(s): 1384Problem Description Let A1

绝尘 625

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HDU4267 A Simple Problem with Integers【树状数组】

A Simple Problem with Integers Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6400    Accepted Submission(s): 2058   Problem Description Le...

海岛Blog 695

HDU - 4267 A Simple Problem with Integers 三维树状数组

Let A1, A2, ... , AN be N elements. You need to deal with two kinds of operations. One type of operation is to add a given number to a few numbers in a given interval. The other is to query the value ...

深海沧澜的博客 222

HDU4267 A Simple Problem with Integers(树状数组 离散化)

A Simple Problem with Integers题目链接Time Limit: 5000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5991 Accepted Submission(s): 1919Problem Description Let

南风古 362

hdu 4267 A Simple Problem with Integers 树状数组

题目 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4267 题目来源:2016.2.26群赛 简要题意:询问某数为多少,对[l,r][l,r]内i−l≡0modki-l\equiv 0 \mod k的aia_i加上cc。

ned_chu的博客 416

hdu(4267)A Simple Problem with Integers(三维树状数组)

  这道题拿过来感觉很蒙 , 因为以前做的都是点更新询问区间 , 或是区间更新询问点 , 这道题是在[a,b]区间内隔k个数更新一次((i - a) % k == 0即i%k==a%k),对于树状数组来说按照一维的方式定义, 后面在加上两维 c[i][k][i%k] (a<=i<=b), 相当于在一维c[i]每个节点加入了一些信息,来记录每次更新,询问时候再加上原数...

167

HDU 4267 A Simple Problem with Integers 数列离散化 + 树状数组

题意:对一个长度为n(n          1:给定a,b,k,c四个整数,在[a , b] 区间满足a          2:给定整数a,求当前A[a]; 题解:想办法把间隔的数字搞到一起,因为1           1,2,3,4,5…(k=1)           1,3,5,7,9…(k=2)           2,4,6,8,10…(k=2)           1,4

Uhh, call me zacky NOW!!! 771

hdu4267 A Simple Problem with Integers(树状数组 区间更新 点查询)

题意: 给定一个长度为n<=50000的数列。对这个数列进行Q此操作。有两种操作:操作1:给定a,b,k,c四个整数,使得a,b间满足a<=i<=b,且(i-a)%k==0的数加c. k<=10操作2:给定整数a,求A[a]. 分析: 对于操作1,显然(i-a)%k == 0 <=> i%k = a % k , 记为e。 那么一共...

dechi5213的博客 130

HDU4267 A Simple Problem with Integers(树状数组)

HDU4267 A Simple Problem with Integers(树状数组) 分析:对于一个特定的k,它有可能有0到k-1 共k个余数.我们对于每条1 a b k c 命令 我们只需要再那些属于[a,b]中的i且i%k==a%k的i上加c即可,所以我们构造树状数组C[k][a%k][MAXN]表示给定k和a 时,对树状数组C[k][a%k][MAXN]执行操作.我们知道我们需要加c的

code 697

HDU 4267 A Simple Problem with Integers [树状数组]

  根据%k=a中a和k的不同组合建立55棵树状数组,每次修改操作只对其中1棵树状数组进行操作,每次查询对其中10棵树状数组统计增量和。 1 #include <string.h> 2 #include <stdio.h> 3 #define MAXN 50005 4 int n,q,x[MAXN]; 5 int ta,tb,cc,k,op; ...

weixin_33730836的博客 87

HDU 4267 A Simple Problem with Integers【树状数组】

题意: 知道了连续的 n 个数的 值,有两种操作: 1 a b kc: adding c to each of Ai which satisfies a <= i <= b and (i - a) % k == 0 2 a :means querying the value of a 分析:因为k比价小,可以多...

weixin_33860528的博客 85
上一篇: 数据结构实验一 《线性表的有关操作》
下一篇: “今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)H Five Day Couple(可持久化字典树)
Timeclimber
博客等级 码龄9年 25粉丝 198原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值