码迷,mamicode.com
首页 > 其他好文 > 详细

[FZYZOJ 1889] 厨房救济

时间:2015-06-25 12:11:48      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:

P1889 -- 厨房救济

时间限制:1000MS

内存限制:131072KB

Description

众所周知,LZL拥有了N个厨房,曾经因水管问题烦恼一时,在某位神(zhang)秘(ge)男(ge)子(?)给予水管交换器的帮助后,厨房终于正常地运作。不过LZL最近又遇上了新的问题……

由于他做的菜实在是太好吃了(跟他的体型一样),好多人都分批来各个厨房吃饭,其中主要有小Z、小G、小C、小K等人,这让LZL很头疼,因为人实在是太多了,他无法迅速地知道几个厨房或一个厨房有多少人,不能及时地分配厨师应付。

现在,LZL找到了你,请求帮助。

Input Format

第1行N、K 代表有N个厨房,K个批次的人员

第2行有N个数,表示每个厨房现有的人数

从第3至K+2行,每行有一个Q,A和B:

如果Q = 1,则有一个A和B,表示标号为A的厨房加进了B个人(很奇怪,B永远大于0!)

如果Q = 2,则有一个A和B,表示请你输出区间[A,B]厨房的人数总和

Output Format

对于每一个Q=2的询问,输出相应的值

Sample Input

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

Sample Output

6
16

Hint

30% N <= 1000 , K <= 1000

50%  N <=10000, K <= 10000

100%  N <= 100000 K <= 100000

所有答案在longlong范围内

 

ZGG: 神秘男子是谁?

LZL:问CK吧,他的题我不知道

ZGG:卧槽,这叫题目?我2秒钟写完了

LZL:……

【题解】

树状数组裸题

技术分享
 1 #include<stdio.h>
 2 char B[1<<15],*S=B,*T=B;
 3 #define getc() (S==T&&(T=(S=B)+fread(B,1,1<<15,stdin),S==T)?0:*S++)
 4 int n,m,b[100001],c[100001],a[100001];
 5 int lowbit(int x) {return x&(-x);}
 6 int getint() {
 7     int x=0,f=1; char ch=getc();
 8     while(ch<0||ch>9) {if(ch==-) f=-1; ch=getc();}
 9     while(ch>=0&&ch<=9) {x=(x<<3)+(x<<1)+ch-0; ch=getc();}
10     return x*f;
11 }
12 void modify(int x,int delta) {
13     
14     while(x<=n) {
15         c[x]+=delta;
16         x+=lowbit(x);
17     }
18 } 
19 int cal(int x) {
20     int ret=0;
21     while(x!=0) {
22         ret+=c[x];
23         x-=lowbit(x);
24     }
25     return ret;
26 }
27 main() {
28     n=getint();m=getint();
29     for (int i=1;i<=n;++i) {
30         b[i]=getint();
31         a[i]=b[i]+a[i-1];
32         c[i]=a[i]-a[i-lowbit(i)];
33     }
34     while(m--) {
35         int xx=getint();
36         if(xx==2) {
37             int p,q;p=getint();q=getint();
38             printf("%d\n",cal(q)-cal(p-1));
39         }
40         if(xx==1) {
41             int p,q; p=getint();q=getint();
42             modify(p,q);
43         }
44     }
45 }
View Code

 

[FZYZOJ 1889] 厨房救济

标签:

原文地址:http://www.cnblogs.com/TonyNeal/p/fzyzoj1889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!