| # | User | Rating |
|---|---|---|
| 1 | Benq | 3676 |
| 2 | Kevin114514 | 3659 |
| 3 | jiangly | 3640 |
| 4 | turmax | 3450 |
| 5 | tourist | 3382 |
| 6 | strapple | 3360 |
| 7 | Um_nik | 3354 |
| 8 | squareOf105 | 3348 |
| 9 | maroonrk | 3312 |
| 10 | idontwannadothis…e | 3191 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 155 |
| 2 | nik_exists | 151 |
| 3 | maspy | 149 |
| 4 | AmShZ | 145 |
| 5 | Um_nik | 143 |
| 6 | Errichto | 139 |
| 7 | BledDest | 136 |
| 8 | adamant | 134 |
| 9 | maroonrk | 132 |
| 10 | cry | 130 |
| Name |
|---|



Auto comment: topic has been updated by WRKWRK (previous revision, new revision, compare).
who tf uses second method?
The second method cannot handle subtree information, but the first method can.
first method is really convenient
I usually use the 2nd method as it make the indexing easier, as I'm already using a pointer based segment tree most of the time.
For speed usually both are the same in my experience:
First method can benefit from array based segment tree, but for every chain you have to get from some part of the whole tree.
Second method only need to get from specific smaller tree, so it's lower amount of node.
The 2nd method also has the added benefit of being a lot faster when your data structure can support faster prefix query:
Except for the last chain, for every chain you will query a prefix and not a middle range.
So if you can get a prefix in a lower complexity (or at least smaller constant), you only pay for the mid range query at the last chain.