A Simple Problem with Integers

http://poj.org/problem?id=3468

#include <stdio.h>
struct node
{
int l,r;
__int64 sum;
__int64 add;
}tree[*];
void build(int left,int right,int root)
{
int mid=(left+right)/;
if(left==right)
{
tree[root].l=left;
tree[root].r=right;
tree[root].add=;
scanf("%I64d",&tree[root].sum);
return ;
}
tree[root].l=left;
tree[root].r=right;
tree[root].add=;
build(left,mid,*root);
build(mid+,right,*root+);
tree[root].sum=tree[*root].sum+tree[*root+].sum;
}
void modify(int left,int right,__int64 add,int root)
{
int mid=(tree[root].l+tree[root].r)/;
if(tree[root].l==left&&tree[root].r==right)
{
tree[root].sum+=add*(tree[root].r-tree[root].l+);
tree[root].add+=add;
return;
}
if(tree[root].add)
{
tree[*root].add+=tree[root].add;
tree[*root+].add+=tree[root].add;
tree[*root].sum+=tree[root].add*(tree[*root].r-tree[*root].l+);
tree[*root+].sum+=tree[root].add*(tree[*root+].r-tree[*root+].l+);
tree[root].add=;
}
if(right<=mid)
modify(left,right,add,*root);
else if(left>=mid+)
modify(left,right,add,*root+);
else
{
modify(left,mid,add,*root);
modify(mid+,right,add,*root+);
}
tree[root].sum=tree[*root].sum+tree[*root+].sum;
}
__int64 search(int left,int right,int root)
{
int mid=(tree[root].l+tree[root].r)/;
__int64 sum;
if(left==tree[root].l&&right==tree[root].r)
return sum=tree[root].sum;
if(tree[root].add)
{
tree[*root].add+=tree[root].add;
tree[*root+].add+=tree[root].add;
tree[*root].sum+=tree[root].add*(tree[*root].r-tree[*root].l+);
tree[*root+].sum+=tree[root].add*(tree[*root+].r-tree[*root+].l+);
tree[root].add=;
}
if(right<=mid)
return sum=search(left,right,*root);
else if(left>=mid+)
return sum=search(left,right,*root+);
else
return sum=search(left,mid,*root)+search(mid+,right,*root+);
}
int main()
{
int n,q,i;
char str[];
int a,b;
__int64 c;
scanf("%d%d",&n,&q);
build(,n,);
for(i=;i<=q;i++)
{
scanf("%s%d%d",str,&a,&b);
if(str[]=='Q')
{
printf("%I64d\n",search(a,b,));
}
else
{
scanf("%I64d",&c);
modify(a,b,c,);
}
}
return ;
}

POJ(3468)的更多相关文章

  1. 区间dp模型之括号匹配打印路径 poj(1141)

    题目链接:Brackets Sequence 题目描写叙述:给出一串由'(')'' [ ' ' ] '组成的串,让你输出加入最少括号之后使得括号匹配的串. 分析:是区间dp的经典模型括号匹配.解说:h ...

  2. POJ(2187)用凸包求最远点对

    Beauty Contest http://poj.org/problem?id=2187 题目描述:输入n对整数点,求最距离远的点对,输出他们距离的平方和 算法:拿到这个题,最朴素的想法就是用2层循 ...

  3. POJ(1195)(单点修改,区间查询)(二维)

    题目大意 给定一个N*N的网格,刚开始每个网格的值都是0,接下来会对这些网格进行操作,有一下两种操作: 1."X Y A"对网格C[x][y]增加A 2."L B R T ...

  4. POJ 题目分类(转载)

    Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

  5. 算法手记 之 数据结构(堆)(POJ 2051)

    一篇读书笔记 书籍简评:<ACM/ICPC 算法训练教程>这本书是余立功主编的,代码来自南京理工大学ACM集训队代码库,所以小编看过之后发现确实很实用,适合集训的时候刷题啊~~,当时是听了 ...

  6. POJ 1251 Jungle Roads (prim)

    D - Jungle Roads Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Su ...

  7. POJ 3669 Meteor Shower(流星雨)

    POJ 3669 Meteor Shower(流星雨) Time Limit: 1000MS    Memory Limit: 65536K Description 题目描述 Bessie hears ...

  8. POJ 1979 Red and Black (红与黑)

    POJ 1979 Red and Black (红与黑) Time Limit: 1000MS    Memory Limit: 30000K Description 题目描述 There is a ...

  9. POJ 2431 Expedition(探险)

    POJ 2431 Expedition(探险) Time Limit: 1000MS   Memory Limit: 65536K [Description] [题目描述] A group of co ...

随机推荐

  1. Smart210学习记录-----Linux i2c驱动

    一:Linux i2c子系统简介: 1.Linux 的 I2C 体系结构分为 3 个组成部分: (1) I2C 核心. I2C 核心提供了 I2C 总线驱动和设备驱动的注册.注销方法,I2C 通信方法 ...

  2. SQL 函数集锦

    ..STUFF()用另一子串替换字符串指定位置.长度的子串.STUFF (<character_expression1>, <start_ position>, <len ...

  3. Azure媒体服务的Apple FairPlay流功能正式上线

    在此我们高兴地宣布,Azure FairPlay Streaming服务已正式商用. FairPlay允许用户轻松构建解决方案,并可扩展到最新版本的Apple TV.Azure媒体服务可以结合现有的P ...

  4. 华为HG255D路由器使用OH3C进行中大校园网认证

    之前用的上海贝尔RG100A-AA路由器,被我无情地摧残了,电源按钮挂了,只能换个路由器.由于在校内,使用OP还是比较方便的,网上淘了这款华为HG255D,店主已刷好OP,无线速率300M,想想也是值 ...

  5. Linux命令:nohup、df、du与/dev/null

    早上开始工作时发现服务器挂掉了,重启TongWeb时有报错: 上面的红框圈错了,第一个红框的下一行: java.io.IOException: No Space left on device 我们用d ...

  6. dedecms recommend 注入 exp

    我看没人用python写过发过 所以我就发一下 喜欢用python的就用我这个吧 不喜欢的就用JAR那个或者PHP那个吧 #coding:GBK import  re import urllib &q ...

  7. HTML中的按钮

    html中的五种按钮 (1)<button></button> 表单外调用一个js文件时使用 (2)<input type="button" valu ...

  8. foreach属性-动态-mybatis中使用map类型参数,其中key为列名,value为列值

    http://zhangxiong0301.iteye.com/blog/2242723 最近有个需求,就是使用mybatis时,向mysql中插入数据,其参数为map类型,map里面的key为列名, ...

  9. [经验交流] 简单安装 centreon 3.2

    centreon 是一个自动化监控平台,监控数据存储在 mysql 中,监控配置在UI中操作,方便且功能强大. 1. centreon 监控引擎 centreon 可以与 nagios 结合,使用 n ...

  10. 【MySQL】InnoDB日志机制深入分析

    版权声明:尊重博主劳动成果,欢迎转载,转载请注明出处 --爱技术的华仔 Log & Checkpoint Innodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfi ...