Programming

I learnt about programming contests from my math teacher in 2005.

As a competitor, my teammates and I got several first places in ICPC (International Collegiate Programming Contest) Asia and North America regionals, 2nd places in China and North America finals, and 17th place in world finals.

As a problem setter, I was involved in the ICPC regional and final competitions in Asia, and some other individual contests, e.g., Codeforces and Topcoder rounds.

My research is influenced by ideas from competitive programming. They are not necessarily invented by the competitive programming community, but can be learnt effectively through contests. The following is a list of


Competitive programming ideas in our papers


Nested Dissection Meets IPMs: Planar Min-Cost Flow in Nearly-Linear Time,

We maintain information in a binary tree by lazy tags.


On the Complexity of Sequence to Graph Alignment, (https://www.biorxiv.org/content/10.1101/522912v1)

We modify the breadth first search to support arbitrary initial distances and length 0, length 1 edges.


Fully Dynamic Vertex Sparsifiers and Applications, (https://arxiv.org/abs/1906.10530)

We use fast matrix powering to simulate a long random walk on graph.


Fitting Second-order Constrained Functions to Data, (https://arxiv.org/abs/1905.02149)

We use convex hulls to represent dynamic programming states.


Nearly Tight Bounds for Sandpile Transience on the Grid, (https://arxiv.org/abs/1704.04830)

We analyze random walks on grid by the reflection principle.