Beads |
Time Limit: 1000ms, Special Time Limit:2500ms,Memory Limit:65366KB |
Problem description |
A game consists of putting beads in boxes. The rules of the game are too complex to describe here, but all you need to know is that keeping track of the number of beans in adjacent boxes are very important to the outcome of the game. You are asked by a friend to write a program to help him win the game every time. At the start of a game, all boxes are empty. |
Input |
The first line of the input consists of a single number T, the number of games played. Each game start with a line describing B, P and Q, the number of boxes, put requests and query requests, respectively. Then follows P + Q lines with either P i a, saying a beads are put in box number i,or Q i j, a query request for the number of beads in boxes i through j, inclusive. |
Output |
For each query request, output the number of beads in boxes a through b, inclusive, that are in the boxes at this point of the game. |
Sample Input |
1 7 5 3 P 2 1 P 3 3 P 4 7 Q 1 4 P 7 6 Q 4 4 P 6 4 Q 1 7 |
Sample Output |
11 7 21 |
Judge Tips |
0 < T 100 0 < B 100000 0 < P 30000 0 < Q <= 30000 0 <= a <= 100 0 < i <= j <= B Note that boxes are 1-indexed. This is an I/O-heavy problem. For Java programmers, this means that you should use BufferedReader for input reading (not Scanner). It is also bene cial to build all output in a StringBuilder before printing in a single print statement. |
Problem Source |
IDIOPEN 2011
题目大意:赤裸裸的树状数组模板啊,但是不会码,只好码线段树了,第一次码线段树,纠结~~囧。。调试了1个小时,囧。。 思路:cover:表示的是如果插入的数在某个区间内,该区间的cover就要相应加上该值。我无限调试在mid用的是线段的那一种情况,所以在分左右子树的时候没有mid+1.囧。。。
program: #include<iostream> |