Блог пользователя vivid_stareium

Автор vivid_stareium, история, 5 месяцев назад, По-английски

I've been grinding 1900-rated problems lately and got completely walled by 1909I.

https://codeforces.me/problemset/problem/1909/I

I spent way too much time on it, finally checked the editorial and the solution involves advanced polynomial tech like NTT. I checked clist and it's rated around 4000.

Is the rating just completely bugged? If so, admins please fix it. But if the 1900 rating is actually correct, could some high-rated coders explain the simpler way to think about this?

Thanks!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +43
  • Проголосовать: не нравится

Автор vivid_stareium, история, 8 месяцев назад, По-английски

Hello Codeforces!

I’m excited to share a tool I’ve been working on: CF Rating Predictor.

While many tools display official rating changes, we often lack a way to quantitatively represent the impact of our Virtual Participations (VP) during training. This tool integrates your actual contest history with your VP records to simulate a continuous rating trajectory, giving you a measurable view of your progress.

Live Demo: https://cf-vp-predictor-7pgzwzseurssuzy5uqktit.streamlit.app/ GitHub: https://github.com/vividStareium/cf-vp-predictor

CF Rating Predictor Demo

Features

VP Integration: Automatically scans your submission history to find Virtual Participations and calculates their potential impact on your rating.

Smart Simulation Algorithm: For each VP, the tool finds "proxy" participants from the same contest with similar ratings to calculate a realistic rating Delta.

Unrated Contest Support: Includes logic to handle unrated scenarios based on rating caps and provides a toggle to show or hide these contests in the chart.

Advanced Visualization: Optimized chart rendering that handles "time-clustered" matches (contests occurring close in time) by dynamically calculating axis offsets to prevent overlapping.

Technical Highlights & Optimizations

Since Codeforces has a vast amount of contest data, I focused heavily on performance:

Storage Efficiency: Redesigned the data storage format for both memory and disk using compact structures, significantly reducing resource pressure.

Concurrency: Implemented batched requests using ThreadPoolExecutor to speed up data fetching while remaining stable and respecting API rate limits.

Lazy Loading: Contest data is synced to the local cache only when needed, ensuring the initial load is as fast as possible.

How to use

Enter your Handle.

Set your Initial Rating (the rating you had before your first recorded contest/VP).

Toggle "Show Official Rating Comparison" to see the gap between your real path and the simulated one.

I'd love to hear your feedback or suggestions for new features!

Update (2025-01-09): Enhanced Data Synchronization

Based on user feedback regarding data caching issues, I have pushed a significant update to the Cache Management system:

New "Refresh Personal Data" Button: I replaced the generic "Clear Cache" button with a smart refresh feature.

Fix for Recent VPs: Previously, if you participated virtually in a contest and then re-checked immediately, the data might not update due to disk caching. This update ensures that clicking the refresh button forces a re-fetch of your latest rank and VP status.

Fix for "Handle Not Found": Solves edge cases where a handle was incorrectly cached as "invalid" or "no data."

Полный текст и комментарии »

  • Проголосовать: нравится
  • +60
  • Проголосовать: не нравится