hdu 4267 多维树状数组

题意:有一个序列

"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)

分析转自:http://www.cnblogs.com/Griselda/archive/2012/09/15/2686133.html

感觉是树状数组了

但是 树状数组是单点更新 而题目要求是在a b 内每隔 k 个数更新..

如果用for循环对a b 内每隔 k 个位置的数更新就会很费时间..

所以有一个方法就是 按 k 值 i%k 值还有 i/k+1 值把每隔 k 个位置的值都分组..即按 k 值和 i%k 值建树状数组 

到时候维护其中一棵 树状数组就好了..

 

维护的方法是在c[ k ][a%k][(i-a)/k+1] + 1 在c[ k ][a % k ][ (a/k) + (b-a)/k + 2 ] - 1..

 

关于建成的树状数组..

更新时有55种情况
1,2,3,4,5......
1,3,5,7,9......
2,4,6,8,10....
1,4,7,10,13...
2,5,9,12,15...
3,6,10,13,16...
.
.
.
10,20,30,40,50...

所以用55个树状数组.

 

建出来的树并不是普通的1,2,3,4,这样的,而是有着间隔的,其实也就是建造了许多树状数组

 

 1 #include<stdio.h>
 2 
 3 #include<queue>
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<string.h>
 7 const int MAXN=50020;
 8 
 9 
10 int c[12][12][MAXN];
11 int n;
12 
13 int lowbit(int x)
14 {
15     return x&(-x);
16 }
17 
18 void update(int t1,int t2,int i,int val)
19 {
20     while(i<=n)
21     {
22         c[t1][t2][i]+=val;
23         i+=lowbit(i);
24     }
25 
26 }
27 int sum(int t1,int t2,int i)
28 {
29 
30     int s=0;
31     while(i>0)
32     {
33         s+=c[t1][t2][i];
34         i-=lowbit(i);
35     }
36     return s;
37 }
38 int num[MAXN];
39 int main()
40 {
41     #ifndef ONLINE_JUDGE
42     freopen("1.in","r",stdin);
43     #endif
44     int m;
45     while(scanf("%d",&n)!=EOF)
46     {
47         for(int i=0;i<n;i++)scanf("%d",&num[i]);
48         for(int i=0;i<12;i++)
49           for(int j=0;j<12;j++)
50             for(int k=0;k<MAXN;k++)
51               c[i][j][k]=0;
52         scanf("%d",&m);
53         int a,b,k,q;
54         int t;
55         while(m--)
56         {
57             scanf("%d",&t);
58             if(t==1)
59             {
60                 scanf("%d%d%d%d",&a,&b,&k,&q);
61                 a--;
62                 b--;
63                 int num=(b-a)/k;    
64                 int s=a%k-1;
65                 update(k,s,a/k+1,q);    //s是该数组的开头数字,a/k+1是结尾的数字
66                 update(k,s,a/k+num+2,-q);
67             }
68             else
69             {
70                 scanf("%d",&a);
71                 a--;
72                 int ss=num[a];
73                 for(int i=1;i<=10;i++)
74                 {
75                     ss+=sum(i,a%i-1,a/i+1);
76                 }
77                 printf("%d\n",ss);
78             }
79         }
80     }
81     return 0;
82 }

 

转载于:https://www.cnblogs.com/cnblogs321114287/p/4343583.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信服务商开发能力说明文档

最近看到很多人复制我的这篇文章,我也是醉了,你起码搞个转载,注明出处, 然后设置付费文档,发现也不好使,文章比较简短,别人也能免费看到我的文章全部内容, 无奈之下,再次打开这篇文章开始编辑, 前面增加一些废话, 看看有多少人复制我的文档,我都不想评论,找各…

html中scope的作用,AngularJS 作用域(Scope)

AngularJS 作用域(Scope)作用域(Scope)是一个存储应用数据模型的对象为 表达式 提供了一个执行上下文作用域的层级结构对应于 DOM 树结构作用域可以监听 表达式 的变化并传播事件作用域有什么作用域提供了 ($watch) 方法监听数据模型的变化作用域提供了 ($apply) 方法把不是由A…

跳转到企业缓存之前要考虑的事项

介绍 关系数据库事务是ACID &#xff0c;强大的一致性模型简化了应用程序开发。 由于启用Hibernate缓存是一项配置 &#xff0c;因此&#xff0c;只要数据访问层开始显示性能问题&#xff0c;就转向缓存非常吸引人。 添加缓存层确实可以提高应用程序性能&#xff0c;但是它有其…

去小公司了解哪些工具?

程序员开发需要具备良好的信息检索能力&#xff0c;为了备忘&#xff0c;将开发过程中常用的网站进行整理。 1、搜索引擎 1.1、秘迹搜索 一款无敌有良心、无敌安全的搜索引擎&#xff0c;不会收集私人信息&#xff0c;保护私隐&#xff0c;没有Cookie&#xff0c;并且秘迹搜索…

(027) Linux之shell分支if语句

十年运维系列之基础篇 - Linux 作者&#xff1a;曾林 联系&#xff1a;1494445739qq.com 网站&#xff1a;www.jplatformx.com 版权&#xff1a;文章未经同意请勿转载 一、使用if语句 通过shell&#xff0c;我们可以来写出这样的一个使用if语句的shell脚本片段。如下所示&…

解锁计算机桌面,电脑锁屏按什么键解锁

按回车键即可解锁。具体的解锁过程如下1、先将电脑设置一个密码&#xff0c;再使用电脑锁屏快捷键将屏幕锁掉&#xff0c;最后按回车键解锁。首先在电脑桌面上点击开始菜单&#xff0c;找到控制面板点击并进入。2、然后在弹出的界面找到“用户账户和家庭安全”&#xff0c;并单…

ppt如何旋转流程图_张伟随笔37:我书写方程式和画流程图的方法

珠海海洋王国里的海象山张伟 2020.11.23我书写方程式和画流程图的方法首发/化学张伟/2020.05.13书写化学方程式&#xff0c;在word里面可以实现一部分&#xff0c;例如&#xff0c;我要书写高锰酸钾受热分解为锰酸钾、二氧化锰和氧气&#xff0c;化学式有上下标&#xff0c;可以…

职业技术人士学习捷径最快的网站

由于最近研究大数据相关的技术及前沿技术,对常用的几个网站做一下分享(包含技术网站+最新资讯网站): 1. 36Kr 网站:https://36kr.com/ 提供创业资讯、科技新闻、投融资对接、股权投资、极速融资等创业服务,致力成为创业者可以依赖的创业服务平台,为创业者提供最好的产品和…

单元测试编写_为什么要编写单元测试-测试技巧8

单元测试编写我对最近的博客“您应该测试什么”有很多React&#xff0c;有些人出于各种原因与我达成一致&#xff0c;另一些人则认为建议某些类可能不需要单元测试是完全危险的。 已经处理了什么测试&#xff0c;今天的博客涉及为什么要编写单元测试&#xff0c;而今天的示例代…

webapi get请求 FromUri list参数传递

今天做项目调用第三方的webapi时&#xff0c;发现get请求竟然用的是FromUri list参数&#xff0c;汗... 这里简单记录下请求传参的方式&#xff08;但不推荐大家使用get FromUri list参数 来定义webapi的功能&#xff09;&#xff1a; 1        HttpClient hClient new…

51cto 检测ip地址冲突_在Linux中发现IP地址冲突的方法

IP冲突&#xff0c;是不会像Windows那样&#xff0c;在右下角弹出冲突提示的。博主就出过一次糗&#xff0c;记得当时是在VM虚拟机里面安装了4个4个Redhat都是VM克隆出来的、完全一致的原来&#xff0c;是那台频繁掉线的虚拟系统和其他部门的办公电脑出现了IP冲突&#xff0c;由…

在计算机网络中可用于信息传输的介质,在计算机网络中,双绞线、同轴电缆及光纤等用于传输信息的载体被称为______介质。...

函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章&#xff0c;存入到字符串数组xx中。请编制函数encryptChar()&#xff0c;按给定的替代关系对数组xx中所有字符进行替代&#xff0c;仍存入数组xx的对应的位置上&#xff0c;最后调用函数WriteDat()把结果xx输出到文…

7个顶级资源网站,不知道就很可惜

说起搜索资源&#xff0c;大家肯定先想到百度&#xff0c;的确“度娘”很万能&#xff0c;能帮我们解决很多问题&#xff0c;但毕竟百度资源有限&#xff0c;用的人多了就造成重复的问题&#xff0c;接下来&#xff0c;小编给大家分享7个顶级资源搜索网站&#xff0c;能满足你很…

使用ab对站点进行压力测试

测试指令&#xff1a; window下&#xff1a; E:\wamp\bin\apache\Apache2.2.21\bin> .\ab -V //查看是否按照了ab:(V 大写) E:\wamp\bin\apache\Apache2.2.21\bin> .\ab -n1000 -c100 http://www.harris.com linux 下&#xff1a; #ab -n1000 -c100 http://www.harris.…

通过Pax考试对JBoss Fuse 6.x进行集成测试,第一部分

JBoss Fuse是一个功能强大的分布式集成平台&#xff0c;具有内置功能&#xff0c;用于集中集成的微服务部署的集中式配置管理&#xff0c;服务发现&#xff0c;版本控制&#xff0c;API网关&#xff0c;负载平衡&#xff0c;故障转移等。 JBoss Fuse 6.x构建在Fabric8 1.x开源项…

【APICloud系列|3】开发APP对UI的一般性要求

以前用APICloud平台开发过一款APP&#xff0c;已经上线&#xff0c;现在担任CTO对UI普及一下常识。 总结 UI图&#xff1a;640*960、1280*720 图标大小&#xff1a;200*200、64*64 图片的格式&#xff1a;png 底部导航栏&#xff1a;两种图片不同颜色。 说明&#xff1a;

浙江大学计算机研究生分数线初试单科学科,计算机考研|这两所自划线,单科没过线也能复试?!...

东南、浙大&#xff01;单科没过线也能复试&#xff01;1.东南大学&#xff1a;统考考生(不含报考苏州联合研究生院考生和管理类联考考生)总分超过报考专业复试线20分以上&#xff0c;单科(限一门)可降2分。2.浙江大学&#xff1a;分数线(管理类联考除外)满足以下情况视同上线&…

python中改变参数值的方法_Python实现partial改变方法默认参数

Python实现partial改变方法默认参数时间&#xff1a;2020-11-18 06:19:00 作者&#xff1a;背锅熊 阅读&#xff1a;114次撤稿申请下边就看下简易的运用检测案例。实际编码以下&#xff1a;#!/usr/bin/env python# -*- coding: utf-8 -*-#python2.7x#partial.py#authror: orang…

量子计算机专业大学排名,世界十大新科技排名,量子计算机排第一名(2)

4、从空气中收集净水详细介绍&#xff1a;这项科技对于缺少水资源的国家地区来说会有很大的帮助&#xff0c;而且不需要耗费过多的资源。来自MIT和加州大学伯克利分校的研究团队通过一类新型多孔晶体——金属有机骨架&#xff0c;在空气湿度低至20%的环境下成功收集净水&#x…

java 拉起服务_技术开发者应该如何构建小团队的微服务方案?

作者 | 徐鹏责编 | 刘静出品 | CSDN(ID&#xff1a;CSDNnews)我们的产品是Linkflow&#xff0c;企业运营人员使用的客户数据平台(CDP)。产品的一个重要部分类似企业版的”捷径”&#xff0c;让运营人员可以像搭乐高积木一样创建企业的自动化流程&#xff0c;无需编程即可让数据…