Hey Codeforces community,

have you ever seen any problems that use Wavelet Tree/Matrix or can be solved using these data structures?

Problems created especially for these structures don't count (for example they should appear in some competition).

# | User | Rating |
---|---|---|

1 | tourist | 3869 |

2 | Benq | 3618 |

3 | Miracle03 | 3452 |

4 | peehs_moorhsum | 3429 |

5 | Radewoosh | 3417 |

6 | Petr | 3408 |

7 | maroonrk | 3386 |

8 | ko_osaga | 3339 |

9 | sunset | 3338 |

10 | jiangly | 3333 |

# | User | Contrib. |
---|---|---|

1 | YouKn0wWho | 214 |

2 | 1-gon | 205 |

3 | Um_nik | 195 |

4 | Errichto | 182 |

5 | awoo | 179 |

6 | sus | 177 |

7 | tourist | 176 |

8 | antontrygubO_o | 172 |

9 | -is-this-fft- | 169 |

10 | SecondThread | 167 |

Hey Codeforces community,

have you ever seen any problems that use Wavelet Tree/Matrix or can be solved using these data structures?

Problems created especially for these structures don't count (for example they should appear in some competition).

↑

↓

Codeforces (c) Copyright 2010-2021 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Nov/29/2021 22:00:36 (i1).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|

This Codeforces Div1-D problem. Solution using wavelet tree is described in this comment.

Min_25 solved this Codechef problem in $$$O(N\log^2 N)$$$ with 3D Wavelet Matrix. I'm not sure if that's the easiest way to achieve $$$O(N\log^2 N)$$$ though.

Nevermind, it seems persistent trees also do the job :)

Wavelet Trees Tutorial it's turorial for wavelet trees and in comments there are some problems

In the paper Wavelet Trees for Competitive Programming by Robinson Castro, Nico Lehmann, Jorge Perez and Bernardo Subercaseaux, three problems where wavelet trees are useful are introduced. These problems can also be solved with persistent segment trees, but wavelet trees have much lower memory usage.

In general I think that all problems solvable with wavelet trees can also be solved with persistent or 2D segment trees. However the advantage of wavelet trees is lower memory usage. The reason why wavelet trees were invented in the first place was to create memory optimized data structures in bioinformatics, where strings like the human DNA are billions of characters long.

UTPC 2011 L (in Japanese) You are given a tree. Each node $$$v$$$ has a number $$$a_v$$$. For each query, you have to output the $$$L_q$$$th smallest number on the path from $$$v_q$$$ to $$$w_q$$$. $$$N,Q \leq 1e5, a_v \leq 1e9$$$.

#302 (Div 1) Problem E can be solved using Wavelet Matrix.