给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和。

 
例如,1 3 7 9 -1,查询第2个元素开始长度为3的子段和,1 {3 7 9} -1。3 + 7 + 9 = 19,输出19。
Input
第1行:一个数N,N为数组的长度(2 <= N <= 50000)。
第2 至 N + 1行:数组的N个元素。(-10^9 <= N[i] <= 10^9)
第N + 2行:1个数Q,Q为查询的数量。
第N + 3 至 N + Q + 2行:每行2个数,i,l(1 <= i <= N,i + l <= N)
Output
共Q行,对应Q次查询的计算结果。
Input示例
5
1
3
7
9
-1
4
1 2
2 2
3 2
1 5
Output示例
4
10
16
19 解

前缀和算法:

#include <stdio.h>
#include <malloc.h>
int main()
{
int n;
while (scanf_s("%d", &n) != EOF)
{
int *p = (int *)alloca(n * sizeof(int)),q;
long long *pt = (long long *)alloca((n + ) * sizeof(long long));
for (int i = ; i < n; i++)
{
scanf_s("%d", p + i);
pt[i + ] = pt[i] + p[i];
}
scanf_s("%d", &q);
while (q--)
{
int i, l;
scanf_s("%d%d", &i, &l);
printf("%lld\n", pt[i+l-] - pt[i-]);
}
}
}

总结一些关于内存分配的知识点。

常见内存分为三大区域

1.静态存储区(全局变量,static类型的局部变量等)

内存区域大,2个G左右,2^28个字节。

2.栈(局部变量等)

内存区域小,1~2M,2^20个字节。处理速度快。

3.堆(动态内存分配)

内存区域大,2个G左右,2^28个字节。

动态内存分配的相关函数:

void *malloc(unsigned int num_bytes);(分配的内存是位于堆中的,并且没有初始化内存的内容。)

void *calloc(unsigned n,unsigned size);(分配的内存是位于堆中的,并且初始化内存的内容。)

void *realloc(void *mem_address, unsigned int newsize);(先判断当前的指针是否有足够的连续空间,如果有,扩大mem_address指向的地址,并且将mem_address返回,如果空间不够,先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配的内存区域的首地址。即重新分配存储器块的地址。)

void *alloca(_In_ size_t _Size) (分配的内存是位于栈中的,并且初始化内存的内容,作用域结束时会自动释放内存。)

void free(void* p);(释放动态分配的内存。未被释放的空间再次被无法使用。)

最新文章

  1. scala shuffle
  2. 【JDK源码分析】String的存储区与不可变性
  3. 资源list:Github上关于大数据的开源项目、论文等合集
  4. psql-03数据类型(1)
  5. Windows下使用性能监视器监控SqlServer的常见指标
  6. DEF2015丨腾讯优测携专业云测试服务,亮相中国(成都)数字娱乐节
  7. C# 调用控制台程序,并获取输出写入文件
  8. Data Flow -&gt;&gt; Fuzzy Lookup &amp; Fuzzy Grouping
  9. android学习日记28--Android中常用设计模式总结
  10. 网页解析Jsoup简单使用
  11. JavaScript八张思维导图—基本概念
  12. 2. 网友对app后端写作系列文章的写作建议
  13. springboot+shiro 一个项目部署多个,session名冲突问题
  14. Rest API
  15. Spark入门到精通--(第十节)环境搭建(ZooKeeper和kafka搭建)
  16. 异常:tomcat与windows时间不同步
  17. js中创建对象
  18. SVN解决冲突
  19. HDU 2522 A simple problem (模拟)
  20. Oracle常用方法备份

热门文章

  1. [K/3Cloud] 使用操作还是服务
  2. bzoj3545 Peaks 线段树合并
  3. POJ 2785_4 Values whose Sum is 0
  4. Spring Cloud体系实现标签路由
  5. iis站点内存泄漏问题分析
  6. iPhone 3gs 5.0.1降級到4.3.3 昨晚搞定(有shsh備份)
  7. 单一责任原则(SRP)
  8. jacoco+maven生成单元测试覆盖率报告
  9. 解决burp suite 使用chrome訪问https失真的问题
  10. js图片懒加载(滚动加载)判断是否生效