WorldWarV's blog

By WorldWarV, history, 6 months ago, In English

Ever felt like Codeforces tags are too limited? Lynkforces (pronounced link-forces) lets you fly around a 3D map of problems and discover clusters by reasoning and technique. Click points to fly to problems, see related ones, adjust rating, and enter your handle to see solves!

Full link: lynkforces.vercel.app

What it is

  • Two maps:
  • Reasoning — clusters by similarity of how you think about the solution.
  • Tags — clusters by techniques/data structures (segment tree, DSU, XOR basis, etc.).
  • Color key: white = unsolved & not relevant (default), green = solved, purple = relevant (darker = more relevant), blue = solved + relevant (darker = more relevant).
  • Dataset note: coverage isn’t comprehensive; latest I saw while testing was about a year back (Round ~995-ish). 3D clustering isn’t perfect since high-dimensional vectors were compressed to 3D, so some related points may still be far apart.

Main map (Reasoning):

Main map (Reasoning)

Help / Controls:

Tags / Techniques map:

Techniques map

How to use it

  • Open lynkforces.vercel.app.
  • Pick Reasoning or Tags (top-left).
  • Use the search bar for ideas.
  • Slide the rating filter to your range.
  • Enter your CF handle to paint solves.
  • Click points to jump around and explore neighbors. Help lives in the bottom-left; 3D controls in the top-left.

Quick summary of how I built it

Tags are useful but broad, as two “graph” problems can demand very different thinking. I summarized editorials into skill vectors, core tasks, pure reasoning, and other fields (with llama because it’s good at taking pieces from the editorial, understanding it, and turning it into matchable text). Then I turned those into embeddings, normalized them, and projected to 3D with UMAP. Semantic search uses the same space, so queries light up neighborhoods that “think” alike.

Tips

  • Make queries descriptive. Instead of “lazy segment tree” (which can light up lots of generic segtree points), try “range add range max,” “range sum with updates,” or “range assign with queries.” Be smart with it!
  • You can paste a problem short ID or a problem link to jump directly.
  • Some problems are pretty clamped, so if you want to be more space-y, try 16–17× scaling.

Try it: Lynkforces. If something stalls or feels off, please let me know — this is my first deploy, and feedback helps a ton!

Also this totally wasn’t inspired by a way cooler project

Happy practicing!

Full text and comments »

  • Vote: I like it
  • +67
  • Vote: I do not like it