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

Автор MikeMirzayanov, история, 16 месяцев назад, По-русски

Привет, Codeforces!

Осталась всего пара дней до 2025 года. Напоследок в этом году залечу с обновлением — надеюсь, оно окажется полезным.

Теперь в свой мэшап вы можете автоматически подбирать случайные задачи по ряду критериев и ограничений. Задачи берутся из архива, необычные задачи исключаются автоматически.

Итак, нажимайте ссылку "Добавить случайные задачи" под списком задач и переходите к форме добавления.

Здесь можно:

  • исключить задачи, которые сдавали/пытались сдать/создали как авторы зарегистрированные на мэшап участники (чтобы задача была исключена, достаточно одного зарегистрированного участника, который её может знать),
  • если мэшап находится в группе (например, это группа ваших тренировок), то исключить все задачи из других контестов этой группы,
  • исключить задачи с подзадачами — такие задачи часто как-то связаны между собой или ссылаются друг на друга,
  • просто указать список хэндлов или списков пользователей, для которых нужно убрать известные им задачи,
  • и, наконец, самое хитрое: в поле "параметры задач" можно указать в специальном формате требования к добавляемым задачам.

Поле "параметры задач" описывает количество и свойства задач, которые нужно найти. По клику на знак вопроса появится следующий поясняющий текст.

Введите одну или несколько строк. Каждая строка задаёт требования для одной задачи. Строка должна начинаться с латинской буквы p, после чего через пробел можно указать дополнительные параметры:

  • Короткое название задачи (её букву в контесте);
  • Требования к сложности задачи (например, ratings:1000-1200, ratings:2000, ratings:3000- или ratings:-1000 — отсутствие числа слева или справа от знака минус обозначает отсутствие соответствующей границы);
  • Теги (используйте tags: и укажите список тегов через запятую, например, tags:dp, binary search, brute force) — будет выбрана задача, содержащая хотя бы один тег из списка. Названия тегов можно писать и на русском языке.

Примеры строк с требованиями:

  • "p" — произвольная задача, буква в контесте будет назначена автоматически;
  • "p F" — произвольная задача, которой назначается буква F;
  • "p ratings:2000-2400" — задача с уровнем сложности от 2000 до 2400, буква в контесте назначается автоматически;
  • "p D ratings:-1200 tags:жадные алгоритмы,дп" — задача с уровнем сложности не более 1200, имеющая тег жадные алгоритмы или дп (или оба), которой назначается буква D.

При нажатии кнопки "Подобрать задачи" вам будет предложен список задач для добавления. Кнопку можно нажимать повторно для генерации другого списка. В этом списке вы можете отметить понравившиеся задачи и, наконец, добавить их в мэшап.

Обратите внимание, что рядом с кнопкой "Подобрать задачи" после нажатия на неё будет выведена дополнительная статистика, которая может помочь вам сориентироваться по рейтингам доступных задач в условиях заданных ограничений.

Надеюсь, теперь подбирать задачи для внутренних тренировок и соревнований станет проще.

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

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +28 Проголосовать: не нравится

Is there an option to exclude certain tags of problems too?

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +54 Проголосовать: не нравится

This is a $$$legendary$$$ update!

»
16 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится +1 Проголосовать: не нравится

this is a legendary,epic and unique update

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

Nice update!!!!

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +22 Проголосовать: не нравится

unusual problems are automatically excluded.

What type of problems are deemed "unusual"?

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится -7 Проголосовать: не нравится

A very cool New Year's update

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +9 Проголосовать: не нравится

This is a common/unusual/rare/epic/legendary/mythic/ultra/super/unique update.

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Cool update!

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +32 Проголосовать: не нравится

is there a way to filter old problems? i think this is very important

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится

this is rare,epic ultra super update

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится -7 Проголосовать: не нравится

I no longer need a discord bot to give me training problems, great news

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится

Can you add multiple random problems at the same time?

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

codeforce is the best site. Happy New Year

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Where can we access this update

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +43 Проголосовать: не нравится

Really Good Feature for practicing, eagerly waiting for using this.

Can we exclude some certain contest problems like div3, div4 ? Because they are overrated mostly.

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +9 Проголосовать: не нравится

Bro just killed my CLI Tool. Seriously though, this is a better solution GG!

»
16 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится -22 Проголосовать: не нравится

Nice addition to codeforces!

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +17 Проголосовать: не нравится

Amazing feature!
Meanwhile, I feel like a clown because I coded the same thing 2 days ago.

Spoiler
»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

best feature till date

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

this is a mythic TOURIST update!

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится -17 Проголосовать: не нравится

Request for a filter of "exclude problems solved by users:". MikeMirzayanov

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

А будет ли когда-нибудь тёмная тема?

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

W

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

where we can access this feature? like which section on the website?

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

Request for a filter of "problems between date X and Y"

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +39 Проголосовать: не нравится

I think having some kind of filters on:

  1. freshness of the problem either between contests X and Y or dates X and Y
  2. Divisions (1,2,3,Educations, ...etc) + Problem character (A,B,C,D)

Might be a good idea because old problems aren't targeted by a lot of people also sometimes people don't wanna ruin gyms, or target their practice on div.2/1 problems

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

Can someone please tell me how do I get this page? I am having difficulty finding it.

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

very good!

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Is there a way to hide the tags of randomly selected problems to avoid spoilers?

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

nice update :) , just yesterday I was hoping we had something like this!!

»
16 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится +12 Проголосовать: не нравится

Thank you so much! Will there be an api for random problem under certain restrictions?

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

can there be a feature to hide the tags when searching for random problems?

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

hmnnn this is maybe sounds unrelated but would you also consider the deflation of the rating ? i mean like 2018's 1600-ish rated problem is way easier than the 2022/2023

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

This is awsome new year present by codeforces. Thanx codeforces team!!

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

Maybe add option for Excluding problems from $$$Div$$$ $$$\ge$$$ $$$X$$$ , because div3-div4 problems are inflated

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

A great improvement!

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

It's really good, but I have to add it one by one again. It would be really awesome if there is a number that is how many the problems would be chosen so that we can find and add them add the same time instead of find problems too many times. Hopefully it's for next year though. Looking forward to new Year :)

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Thanks!

Please also make it easier to filter div1 problems. Maybe it could be a problem tag? It would be a really amazing feature for the problemset page.

Currently, even trying to do this manually using the API seems to require multiple API calls and non-trivial logic. I've tried those ideas at some point. Are there any better ways?

  • Fetch problemset and contest list, match each problemset problem to a contest and then parse the contest name and see if it contains Div. 1 or global round or good bye or hello or ...

    • (this gets extra confusing with some exceptions like VK Cup and Croc which may or may not be div1)
  • Fetch the rating changes of top ~30 people and assume that at least one of them has participated in every div1 contest. So the union of contest ids from their rating changes is close to a complete list of div1 contests

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

This is a really useful update!

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

This might sounds unrelated, but what about the rating deflation ?. I mean like problem with rating 1600 in 2019-ish is way easier ( at least for me ) than 2024's one

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Luogu also has this function. It's really useful. Codeforces is being better and better :)

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

How can I exclude interactive problem?

»
16 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

I've attempted to do a similar version to this earlier as a small go-lang learning project here.

While implementing this, I encountered the following limitations:

  1. Problems solved for a user inside groups (or other mashups) weren't visible from the API.
  2. Gym problems were not included.
  3. Overlapping rounds (Div1-Div2) were a bit non-trivial to link (e.g., 1972 and 1967).

MikeMirzayanov, could you please touch on these aspects and clarify if the new tool simply resolves those limitations?

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Maybe you can add a link to here from the "Add Random Problems" page?

Easy way to reference documentation when you need it.

»
16 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

How to Filter Out Problems from Unrated Contests?