Qingyu的博客

博客

Tags
None

Moscow International Workshops 2021 Day 1 题解 (aka AMPPZ 2021)

2021-11-23 14:44:06 By Qingyu

http://blog.qingyu.us/2021/11/moscow-international-workshops-2021.-day-1./

Warning: 这场比赛可能会被用作 XXII Open Cup 的 GP of Poland, 如果你到时候想参赛的话就别看这篇博客了~

A. AMPPZ in the times of disease

首先注意到, 如果我们对每个 $S_1,S_2, \cdots, S_k$ 都确定了一个元素, 那么其余点显然只能选择距离其最近的一个关键点, 并加入这个集合(若有多个则显然无解).

令 $P_1 \in S_1$, 随后我们考虑距离 $P_1$ 最远的点, 不妨假设其为 $P_2$. (若有多个, 我们随便取一个即可)

那么, 如果 $P_2 \in S_1$, 那么 $f(S_1) \geq \mathrm{dist} (P_1,P_2)$, 但另一方面, 限制要求我们有 $f(S_1) \leq \min _{x \in S_1, y \notin S_1} \mathrm{dist}(x, y)$, 因此除非 $U \setminus S_1 = \varnothing$, 否则一定无解.

不妨设 $P_2 \in S_2$, 那么我们同样找到一个 $P_3$, 使得 $\min(\mathrm{dist}(P_1,P_3), \mathrm{dist}(P_2,P_3))$ 最小, 同样我们有 $P_3 \in S_3$.

这样重复 $k$ 轮, 我们就为每个集合都找到了一个关键元素. 时间复杂度为 $O(nk)$.

B. Babushka and her pierogi

留坑.

C. Cake

这个旋转操作看起来比较强大, 但是注意到旋转前后两维的奇偶性都会改变, 所以如果设 $b_{i,0} = a_{i,i \; \bmod 2}, b_{i,1} = a_{i,(i+1)\;\bmod 2}$, 那么旋转操作等价于交换两个相邻的 pair, 问题转化成给你一个序列, 问最少交换相邻元素多少次变成目标序列. 在没有相同元素的时候就是逆序对数, 而有相同元素时, 容易发现我们直接按顺序匹配就是最优的. 时间复杂度 $O(n \log n)$.

D. Divided Mechanism

直接暴力模拟即可, 难度全在读题上. 时间复杂度 $O(\sum nmq)$.

实现的时候如果直接维护整个图形可能有点难写, 直接记一下差分了多少即可.

E. Epidemic

留坑

F. Fence

首先注意到, 对于一个 $(a_i,b)$ 的二元组, 我们可以 $O(1)$ 求出其生成序列的奇数位置和与偶数位置和.

注意到当我们将 $b$ 变为 $b+1$ 时, 只有 $a_i \geq b$ 的位置的值变化了, 而这样的变化总数是不超过 $\sum_{b \geq 0}\sum_{i=1}^n [a_i \geq b] = \sum_{i=1}^n a_i = S$ 的, 所以我们可以直接暴力修改.

由于修改一个位置会影响后面位置的贡献, 我们可以开一棵线段树, 支持一下单点修改和区间换标记即可, 由于只有两种标记, 直接暴力存两个区间和即可. 时间复杂度为 $O(n + S \log n)$, 足够通过.

注意到我们修改的时候, 凡是这一轮没修改过的位置, 以后都不会再改了, 所以我们其实没必要线段树, 直接暴力维护即可. 对于删除操作, 直接使用链表维护即可, 时间复杂度为 $O(n+S)$.

G. Gebyte's Grind

如果我们将每个点看作一个映射 $f: \mathbb Z \mapsto \mathbb Z$ 的话, 那么这三类节点分别相当于:

  1. $f(z) = \begin{cases}z-b & z > b\\ -\infty & \mathrm{otherwise}\end{cases}$
  2. $f(z) = \begin{cases} c & z \geq c \\ -\infty & \mathrm{otherwise} \end{cases}$
  3. $f(z) = \max (z, c)$

首先注意到第三类节点可以写成 $f(z) = \begin{cases} z & z \geq c \\ c & \mathrm{otherwise} \end{cases}$, 那么注意到, 我们任意取出若干个映射, 他们的复合一定可以写成 $(f \circ \cdots \circ f_*)(z) = \begin{cases} -\infty & z \leq a \\ c & a < z \leq b & \\ z + d & \mathrm{otherwise} \end{cases}$的形式(更特殊的, 其实一定有 $d=c-b$), 所以我们可以开一棵线段树, 每个节点维护这个区间的复合对应的映射长什么样. 容易发现我们可以 $O(1)$ 求两个映射的复合, 所以我们可以轻松合并标记. 对于修改操作, 我们直接做即可. 对于查询操作, 我们先从 $l_i$ 往上 jump, jump 的时候把 parent 对应的右儿子复合起来, 如果发现此时 $f(z)$ 已经是 $-\infty$ 了, 就代表需要左拐, 直接进去右儿子并不断往左跳即可(整个过程类似线段树二分). 总的时间复杂度为 $O((n+q) \log n)$.

H. Hidden Password

签到题.

I. Interesting Numbers

不妨假设 $a_i \in [0,2^b)$.

  1. 如果 $k < 2^{b-1}$, 那么显然选出的数的最高位必须全都相同, 我们将最高位为 $0$ 和为 $1$ 的分开做即可, 转化为 $a_i \in [0,2^{b-1})$ 的子问题.
  2. 如果 $k \geq 2^{b-1}$, 那么我们考虑建出一张图, 如果两个数异或小于等于 $k$ 连一条边, 答案即为图 $G$ 的最大团. 注意到最高位相同的 $a_i$ 之间一定会连边, 因此图事实上是两个团之间连了一些边, 求最大团.
    • 注意到 $G$ 的补图为二分图, 所以可以直接跑二分图最大匹配, 如果使用 Dinic 算法, 总的时间复杂度会达到 $O(n^{2.5} \log V)$, 无法通过.
    • 整个图的结构非常优秀, 我们可以考虑 Trie 树优化建图, 这样的时间复杂度优化到 $O(n^{1.5} \log n \log V)$, 可以通过. 当然, 如果做的时候精细实现一下, 把每一层重复的部分压缩起来, 应该可以做到 $O(n^{1.5} \log n + n \log V)$ (没写过, 口胡的)
    • 事实上不用这么复杂, 我们仍然可以使用类似分治的方法解决. 我们继续将两个团 $A,B$ 划分为第 $b-1$ 位为 $0$ 的部分 $A_0,B_0$ 与为 $1$ 的部分 $A_1,B_1$, 那么我们考虑 $k$ 的第 $b-1$ 位:
      1. 如果这一位为 $0$, 那么答案显然就是 $\max (f(A_0,B_0), f(A_1,B_1))$, 直接递归即可.
      2. 否则, 注意到只有 $A_0,B_1$ 与 $A_1,B_0$ 的部分需要决策, 答案即为 $\max(|A_0|+|B_0|, |A_1| + |B_1| , f(A_0, B_1), f(A_1, B_0))$.
    • 总的时间复杂度为 $O(n \log V)$

J. Jungle Trail

若起点与终点间不连通, 则无解. 否则, 容易发现, 我们任取一条起点到终点的长为 $n+m-2$ 的路径, 每次移动都会走到一个新的行/列, 直接调整这些位置就是一组合法的方案.

K. Kitten and Roomba

我们在走路的时候, 维护一个 $p_i$, 表示此时你站在 $i$ 号点的概率, 那么整个过程的答案可以使用以下过程求出:

  1. 初始 $E \leftarrow 0$
  2. 对于每一步所走的 $x$:
    1. 令 $E \leftarrow E + p_x$
    2. 对所有 $(x,y) \in G$, 令 $p_y \leftarrow p_y + p_x / \deg (x)$
    3. 令 $p_x \leftarrow 0$.
  3. $E$ 即为答案

由于图是一棵树, 我们直接随便钦定一个点当根, 然后对于修改一个点邻居的操作, 我们变成修改它的父亲并在自己位置打一个标记. 查询的时候直接询问真实的值与父亲的标记相加即可. 时间复杂度 $O(n+m)$

L. Lemurs

容易发现如果一个位置能放, 那么我们放了显然不会让答案变劣, 所以我们能放就放是最优的.

而对于一个位置 $(x,y)$, 其能放当且仅当对所有 $|x'-x|+|y'-y| \leq k$ 的 $(x',y')$ 都是 x, 这可以通过转 Chebyshev Distance 后询问矩形和实现. 而求出答案后, 做同样的操作即可.

唯一的问题是虽然 $1 \leq n,m \leq 1000$, 但最坏情况下有 $50$ 组测试数据, 上述算法的时间复杂度为 $O(T(n+m)^2)$, 于是以 4.5 秒(时限4.0秒)的好成绩 TLE 了.

考虑一个常数更小的算法: 对于一个 ., 本质上其限制了预期 Manhattan 距离 $\leq k$ 的位置不能放, 所以相当于这些位置都被 ban 了. 我们对每个点维护一个 $f_i$, 表示这个点的距离限制, 那么我们按照 $f_i$ 从大到小 BFS, 即可求出所有被 ban 的位置. 最后合法的位置同样可以求出, 这样的时间复杂度就优化到了 $O(Tnm)$, 可以通过.

M. Median

留坑.

Auto Post by QOJ Editorial bot

XXII Open Cup 新闻合集 / 比赛列表合集

2021-09-02 23:08:35 By Qingyu

Next Stage: Grand Prix of Seoul (7.17), Grand Prix of Bytedance (7.24), TBD (7.31)

Past Contests

# Stage Based on Materials
1 Grand Prix of Dolgoprudny Petrozavodsk Summer 2021. Day 7. MIPT Contest Statements Discuss
2 Grand Prix of IMO Petrozavodsk Summer 2021. Day 3. IQ test by kefaa2, antontrygubO_o, and gepardo Statements Discuss
3 Grand Prix of Xi'an Petrozavodsk Summer 2021. Day 6. Xi'an JTU Contest 1, GP of Xi'an Statements Discuss
4 Grand Prix of Korea 11th KAIST ICPC Mock Competition Statements Discuss
5 Grand Prix of Siberia XXII Open All-Siberian Programming Contest named after I.V. Pottosin, Final tour, II day Statements Discuss
6 Grand Prix of EDG The 2021 CCPC Guilin Onsite Statements Discuss
7 Grand Prix of Southeastern Europe The 2021 ICPC Southeastern Europe Regional Contest (SEERC 2021)
Moscow International Workshops 2021. Day 2, Div.A
Statements Discuss
8 Grand Prix of Poland Akademickie Mistrzostwa Polski w Programowaniu Zespołowym 2021 (AMPPZ 2021)
Moscow International Workshops 2021. Day 1, Div.A+B
Statements Discuss
9 Grand Prix of Nanjing The 2021 ICPC Asia Nanjing Regional Contest Statements Discuss
10 Grand Prix of Kyoto Kyoto University Programming Contest 2021
Petrozavodsk Winter 2022. Day 1, Kyoto U Contest 2
Statements Discuss
11 Grand Prix of Daejeon Petrozavodsk Winter 2022. Day 2, KAIST Contest + KOI TST 2021 Statements Discuss
12 Grand Prix of Grushevka Petrozavodsk Winter 2022. Day 5, Yandex Cup Statements Discuss
13 Grand Prix of Gomel Petrozavodsk Winter 2022. Day 7, Gennady Korotkevich Contest 6 Statements Discuss
14 Grand Prix of BSUIR BSUIR Open X. Reload. Student Final Statements Discuss
15 Grand Prix of Yuquan Moscow Pre-Finals Workshops 2022. Day 5, ZJU Contest Statements Discuss
16 Grand Prix of Urals XXV открытый Чемпионат Урала по спортивному программированию Statements Discuss

News

本帖所有内容均来自 Open Cup News 频道(https://t.me/opencup_ru) 与官方网站 (http://opencup.ru), 若信息有冲突请以频道内容为准.

本帖所提及的发帖时间均指莫斯科时间 (UTC +3)

  • 09/02/2021 15:49: The first three stages of new season will be based on Petrozavodsk contests: 12.09 will be Grand Prix of Dolgoprudny, 19.09 - Grand Prix of IMO, 26.09 - Grand Prix of XiAn (if there will not be an actual onsite/online to base the new GP, in that case the GP of XiAn will be moved to next Sunday). The GP's will start at usual time.
  • 09/02/2021 15:49: The final of XXI season of OpenCup is planned approximately at November 2021.
  • 09/02/2021 16:42: Due to troubles with new interface of Yandex.Contest admin console for the sector coordinators, the start of XXII season is moved for one week. So the first GP (GP of Dolgoprudny) is planned to Sep 12, GP of IMO - to Sep 19, GP of XiAn - to Sep 26.
  • 09/02/2021 16:43: Probably the new registration for sectors / ext logins will be needed. The information (if any) will appear here.
  • 10/07/2021 13:45: The Widesiberian Olympiad changed the rules for the selection contest from ACM to mixed ACM+marathon with variable scoring, so it cannot be used as the OpenCup stage at the current season. In next seasons the non-ACM scoring stages may be considered, but major last-minute changes are not acceptable. So the Grand Prix of Eurasia at Oct 10 is cancelled.
  • 10/22/2021 14:23: The GP of Korea will take place at Oct 24, usual time.
  • 10/24/2021 16:54: The summary standings for 4 stages are published now.
  • 11/05/2021 15:34: The GP of Siberia will take place at Nov 7, usual time. The GP's are planned for Nov 14, 21 and 28, all usual time. The names for the GP will be announced later.
  • 11/07/2021 11:18: The standings on Yandex are broken
  • 11/07/2021 11:18: http://opentrains.snarknews.info/~ejudge/res/res10555
  • 11/07/2021 11:18: Div 1 standings
  • 11/07/2021 11:24: http://opentrains.snarknews.info/~ejudge/res/res10565
  • 11/07/2021 11:24: Div 2 standings
  • 11/07/2021 12:35: Builtin standings are working now
  • 11/07/2021 15:16: The results of the Siberian Grand Prix will be added to the rating after 10:00 GMT Nov 8, after the Widesiberian Olympiad closing ceremony, where the last hour for the base contest teams will be opened.
  • 11/11/2021 09:33: The GP of EDG will take place at Nov 14, usual time
  • 19/11/2021 22:01: The GP of Southeastern Europe will take place at Nov 28, usual time. The Nov 21 will be the day off, no Grand Prix is scheduled for that day.
  • 14/02/2022 16:31: The Grand Prix of Kyoto will take place at Feb 20, usual time. The Grand Prix of Daejeon will take place at Feb 27, usual time. The Grand Prix of Gomel will take place at Mar 6, usual time. The Grand Prix of Belarus will take place at Mar 13, usual time. The results of Petrozavodsk camp will be counted in those 4 GP's.
  • 26/02/2022 14:17: The Grand Prix of Daejeon is postponed at least till Mar 6. The Grand Prix of Belarus is postponed till Mar 13, the Grand Prix of Gomel is postponed till Mar 20. The GP of Daejeon, however, is still open for the early participation by ext teams, the link is http://official.contest.yandex.com/opencupXXII/contest/35265/enter
  • 05/03/2022 20:50: The Grand Prix of Daejeon is postponed at least till Mar 20. Further information will follow. The link for participation of the ext teams is still working. Additionally, here is the link for the partcipation of the ext teams for the next GP: http://official.contest.yandex.com/opencupXXII/contest/35268/enter
  • 19/03/2022 20:39: The final date of the Grand Prix of Daejeon is Mar 27, original time.
  • 27/03/2022 10:03: GP of Daejeon link: http://official.contest.yandex.com/opencupXXII/contest/35265/enter
  • 27/03/2022 10:04: There will be no Div 2 today, for further GP Div2 is under consideration.
  • 02/04/2022 13:38: The link on 12'th stage of the OpenCup - GP of Grushevka Div 1 contest: http://official.contest.yandex.com/opencupXXII/contest/35268/enter
  • 06/04/2022 00:41: The 13'th stage of the OpenCup will be at Apr 10, usual time. The teams participating Petrozavodsk camp will have their results included in the final standings.
  • 28/04/2022 11:44: The 14'th stage of the OpenCup, GP of BSUIR, will be at May 1,, usual time. The teams participating BSUIR Open Finals will have their results included in the final standings. The 15'th stage is planned on May 8, usual time.
  • 28/04/2022 11:45: The OpenCup season will be prolonged approx to end of July, because some planned GP are postponed due to COVID issues in China.
  • 29/04/2022 13:45: http://official.contest.yandex.com/opencupXXII/contest/37753/enter - Division 1 Link for Grand Prix of BSUIR
  • 01/05/2022 09:59: http://official.contest.yandex.com/opencupXXII/contest/37754/enter - Division 2 Link for Grand Prix of BSUIR
  • 04/05/2022 18:52: The 15'th stage, the GP of Yuquan, is planned on May 8, usual time. Teams that were participated in Prefinals MW will have their results included in the final standings. http://official.contest.yandex.com/opencupXXII/contest/37831/enter - Division 1 Link
  • 26/05/2022 13:42: The 16'th stage, the GP of Urals, is planned on June 5, usual time. Teams that were participated in Championship of Urals, will have their results included in the final standings.
  • 02/06/2022 14:17: The 16'th stage, the GP of Urals, is planned on June 5, usual time. http://official.contest.yandex.com/opencupXXII/contest/38278/enter - Division 1 Link
  • 05/06/2022 10:55: There will be Division 2 contest today, the link is: http://official.contest.yandex.com/opencupXXII/contest/38279/enter
  • 12/07/2022 16:55: The Bytedance camp finally started, so there will be Stage 17, GP of Seoul at Jul 17, usual time, and Stage 18, GP of Bytedance at Jul 24, usual time. The results of the camp participants will be integrated. And at Jul 31 will be stage 19.

本帖最后更新于 02/06/2022 16:22 (UTC +3)


以下为 opencup.ru 中给出的时间表. 本表最后更新于 06/12/2021.

1.12.09.202111:00Grand Prix of Dolgoprudny
2.19.09.202111:00Grand Prix of IMO
3.26.09.202111:00Grand Prix of XiAn
?.CANCELLED11:00Grand Prix of Eurasia
4.24.10.202111:00Grand Prix of Korea
5.07.11.202111:00Grand Prix of Siberia
6.14.11.202111:00Grand Prix of EDG
7.28.11.202111:00Grand Prix of Southern Europe
8.05.12.202111:00Grand Prix of Poland
9.12.12.202111:00Grand Prix of Nanjing

The information about future stages will appear later.


Announcement

В XXII Открытом Кубке им. Е.В. Панкратьева по программированию, который планируется провести с сентября 2021 по май-июль 2022 года, предполагается проведение от 14 до 24 этапов. Первый этап Кубка состоится 12.09.2021. В этом сезоне традиционно основной системой для первого дивизиона Кубка будет Яндекс.Контест. Основной системой для второго дивизиона Кубка будет ejudge, для команд второго дивизиона организован спонсорский зачёт Moscow Workshops. Спонсорского зачёта от компании Яндекс в текущем сезоне не будет.
В этом сезоне планируется полная перерегистрация всех секторов (с перегенерацией паролей). Перерегистрация будет идти до 1 октября 2021 года. При перерегистрации будет проведена синхронизация данных в обеих используемых системах (ejudge и Яндекс.Контест), что позволит использовать единую консоль администратора сектора для обоих дивизионов. До окончания перерегистрации все логины не перерегистрировавшихся секторов остаются as is. Для команд, использующих логины с префиксом ext, синхронизация будет проведена позднее.
При перерегистрации сектора (и для регистрации нового сектора) необходимо отправить заявку на адрес site-register(сoбakа)opencup(тoчka)org. В теме письма указать "Перерегистрация" или "Регистрация нового сектора". В самом письме указать следующую информацию:

Название сектора по-английски, например Byteland; префикс логинов команд будет построен, исходя из названия сектора. Для перерегистрируемого сектора обязано совпадать с текущим названием сектора. Полное имя координатора сектора, его должность (желательно, но не обязательно - в случае, если сектор связан с образовательным учреждением). login координатора для доступа в единую консоль администратора (он же login в системе ejudge). Если в настоящий момент логина нет - указать, какой логин надо сделать. login координатора в системе Яндекс.Контест (он же - почтовый ящик на Яндексе). В случае наличия проблем с доступом к консоли администратора на Яндекс.Контесте для перерегистрируемого сектора --- указать отдельно.

Для ввода имён команд и получения условий задач координаторы должны использовать консоль администратора. Ссылки на консоль администратора для системы ejudge и для системы Яндекс.Контест находятся в меню слева.

Для редактирования составов команд и работы с паролями в системе Яндекс.Контест необходимо сначала войти в систему (например, на Яндекс.Почте), после чего открыть соответствующую ссылку. Интерфейс координатора находится по ссылке "OpenCup" Для редактирования составов команд и работы с паролями в системе ejudge необходимо войти в систему, используя выданный координатору пароль. Список команд будет по ссылке My Teams, также в момент появления условий задач появятся ссылки для их скачивания.


Updated I:

Первый этап XXII Открытого Кубка по программированию - Гран-При Долгопрудного - состоится 12.09.2021 в 11:00.
Командам, участвовавшим в сборах в Петрозаводске, в зачёт идёт результат, показанный в Петрозаводске.
В связи с проблемами с доступом к серверу opentrains.snarknews.info и недостаточным количеством перерегистрированных секторов команды второго дивизиона будут участвовать в предстоящем этапе в системе Яндекс.Контест. При этом наборы задач совпадают лишь частично (как обычно в Div 2).
В связи с пандемией коронавируса командам рекомендуется писать через удалённый доступ из дома (для коммуникации можно использовать программные средства типа skype, discord, zoom и им подобные). В функции координатора сектора входит только высылка паролей командам своего сектора, у которых есть проблемы с доступом (у новых или забывших пароль).
Первоначальную регистрацию производят координаторы секторов и подсекторов. Команды, которые хотели бы принять участие в Кубке в составе того или иного сектора, но ещё не сообщили о своём намерении участвовать в текущем сезоне Кубка координатору сектора, могут до 11:00 11.09.2021 отправить по e-mail координатора заявку. В заявке для каждой команды указывать название команды, имена и фамилии участников, учебное заведение, курс или класс для каждого из участников (если таковые определены).
Координаторы секторов и подсекторов обязаны заполнить окончательные составы участвующих в Гран-При команд не позднее 16:00 11.09.2021. Предварительные составы желательно заполнять до начала Гран-При.


Update II:

Седьмой этап XXII Открытого Кубка по программированию - Grand Prix of Southeastern Europe - состоится 28.11.2021 в 11:00. Командам, участвовавшим в MW International 2021, в зачёт идёт результат, показанный на сборах. В связи с переносом сервера ejudge и недостаточным количеством перерегистрированных секторов команды второго дивизиона будут участвовать в предстоящем этапе в системе Яндекс.Контест. При этом наборы задач совпадают лишь частично (как обычно в Div 2). В связи с пандемией коронавируса командам рекомендуется писать через удалённый доступ из дома (для коммуникации можно использовать программные средства типа skype, discord, zoom и им подобные). В функции координатора сектора входит только высылка паролей командам своего сектора, у которых есть проблемы с доступом (у новых или забывших пароль). Первоначальную регистрацию производят координаторы секторов и подсекторов. Команды, которые хотели бы принять участие в Кубке в составе того или иного сектора, но ещё не сообщили о своём намерении участвовать в текущем сезоне Кубка координатору сектора, могут до 11:00 28.11.2021 отправить по e-mail координатора заявку. В заявке для каждой команды указывать название команды, имена и фамилии участников, учебное заведение, курс или класс для каждого из участников (если таковые определены).


Past contests:

暂别

2021-08-03 00:00:00 By Qingyu

比赛可以鸽,暂别不行。

我们几个管理员 Qingyu, Qingyu, Qingyu 和我在过去的半年中,组织和举办了不少的比赛,也还算及时地将官方比赛题目上传到了 QOJ 中。

我一直非常喜欢 UOJ,在去年收到 Qingyu 的邀请后,我思考了一段时间,并决定来当 QOJ 管理,我想为这个美好的 OJ 献出自己的一份力量,让这个 OJ 变得更加好,如今看来,当时的目标也基本实现了。

在当管理的一年中,还是有很多事让我记忆深刻的,还记得 XXI Open Cup named after E.V. Pankratiev, Grand Prix of Siberia; XXI Open Cup named after E.V. Pankratiev, Grand Prix of Eurasia; 7 February, 2021 — Waterloo local contest; NOIP 2020; Petrozavodsk Winter 2021. Day 9. Grand Prix of Suwon; XXI Open Cup named after E.V. Pankratiev; Grand Prix of Suwon; Petrozavodsk Winter 2021. Day 8. Belarusian SU Contest; XXI Open Cup named after E.V. Pankratiev; Grand Prix of Belarus; Petrozavodsk Winter 2021. Day 7. North American Contest 1; Petrozavodsk Winter 2021. Day 6. PKU Contest 2; Petrozavodsk Winter 2021. Day 5. Almost Retired Dandelion Contest; XXI Open Cup named after E.V. Pankratiev; Grand Prix of Nizhny Novgorod; Petrozavodsk Winter 2021. Day 4. PKU Contest (Common Contest 1); Petrozavodsk Winter 2021. Day 3. Nordic+ Contest 2020 (NCPC-2020 with some BAPC/UKIEPC 2020); Petrozavodsk Winter 2021. Day 2. UPC Contest; Petrozavodsk Winter 2021. Day 1. Jagiellonian U Contest; XXI Open Cup named after E.V. Pankratiev; Grand Prix of Krakow; Nordic Collegiate Programming Contest 2020; Potyczki Algorytmiczne 2020; Runda 5; Potyczki Algorytmiczne 2020; Runda 4; Potyczki Algorytmiczne 2020; Runda 3; Potyczki Algorytmiczne 2020; Runda 2; Potyczki Algorytmiczne 2020; Runda 1; Potyczki Algorytmiczne 2020; Runda próbna; 2019-2020 ICPC Northwestern Europe Regional Contest; 2018-2019 ICPC Northwestern Europe Regional Contest; USACO 2020 January Contest (Platinum); USACO 2019 December Contest (Platinum); The 2020 Benelux Algorithm Programming Contest; USACO 2019 February Contest (Platinum); USACO 2019 January Contest (Platinum); USACO 2018 December Contest (Platinum); 2017-2018 ICPC Northwestern Europe Regional Contest; Nordic Collegiate Programming Contest 2019; 2019-2020 ICPC Southwestern Europe Regional Contest; 2020 Canadian Computing Olympiad Day 2; 2020 Canadian Computing Olympiad Day 1; International Olympiad in Informatics 2020 Day 2; International Olympiad in Informatics 2020 Day 1; Petrozavodsk Summer 2020. Day 6. Korean Contest; Petrozavodsk Summer 2020. Day 5. JAG Summer 2019+; Petrozavodsk Summer 2020. Day 4. Xi Lin Contest 6; Petrozavodsk Summer 2020. Day 3. Songyang Chen Contest; Petrozavodsk Summer 2020. Day 2. SPb SU LOUD ENOUGH Contest; XXI Open Cup named after E.V. Pankratiev; Grand Prix of SPb; Petrozavodsk Summer 2020. Day 1. Warsaw U Contest; USACO 2018 February Contest (Platinum); USACO 2018 January Contest (Platinum); USACO 2017 December Contest (Platinum); 2020-2021 ICPC North America - Pacific Northwest Regional Contest - Division 2; 2020-2021 ICPC North America - Pacific Northwest Regional Contest - Division 1; 2020-2021 ICPC North America - Mid-Atlantic USA Regional Contest; 2020-2021 ICPC North America - Mid-Central USA Programming Contest; 2020-2021 ICPC North America - East Central NA Regional Contest; 2020-2021 ICPC North America - Rocky Mountain Regional Contest; 2019-2020 ICPC North America - Rocky Mountain Regional Contest; Russia Open 2020 High School Team Programming Contest 2020-09-08 08:30:00 3 hours 30 minutes No ×0 IOI 2018 中国国家队清华集训 Day 4 (CTT 2017 Day 4); IOI 2018 中国国家队清华集训 Day 3 (CTT 2017 Day 3); IOI 2018 中国国家队清华集训 Day 2 (CTT 2017 Day 2); IOI 2018 中国国家队清华集训 Day 1 (CTT 2017 Day 1); 前 D 题发生了一系列事故,导致比赛前一天 Qingyu 哥哥晚上一点多写好 std,我三多造好数据,然后还发现了同样没睡在内卷的 hy,第二天起来一看 Qingyu 说他第一步假了,暴力和 std 都是错的,换上了现在的题意,11 点 Qingyu 写完 std 然后我造数据传好就弃疗了。以及后来的 QOJ Training Series 和 Qingyu 哥哥熬夜造 E 题等等 (主要原因还是我们太鸽),不过相信下一届管理员会比我们做得更好!

现在 NOI 也顺利结束了,又一批 OIer 完成了他们最重要的一战,而 QOJ 也到了换届的环节,下一届将有四个管理员,他们是:

QingyuQingyuQingyuQingyu

祝你们一切顺利,QOJ 越办越好!

一些比赛的资料

2021-06-18 00:32:24 By Qingyu

来自 HY 大神的提醒:注意账户安全,FTP 密码已重置

2021-05-11 12:20:33 By Qingyu

为了避免自己的账户泄露,建议不要在大机房中使用浏览器的“保存密码”功能!!

若认为自己的密码已经泄露,需要在修改密码后使用 登出所有活跃会话 功能,否则此前认证过的会话可能不会失效。

同时,为了避免权限组的题目泄露,hydd 大神指示各位 hy 的粉丝 使用强度较高的密码,请不要使用诸如 12345611451419260817hyakctsilovechino 的弱口令。

FTP 所有账户已重置,请有 FTP 权限的群友查看系统消息获取最新的用户密码。对于 Archive 中一些公开的测试数据,建议大家转至 Google Drive 镜像进行下载。

不建议在博客中写模拟赛题的题解,如果需要写内部题的题解,一定注意添加权限。所有内部题目的讨论博客需要拥有 access-secret-blogs 权限与校内团队(目前有 $12,16,17,19,22$ 五个团队)权限才可以查看。

本公告的最终解释权归 hydd 所有。

Discovery Hailiang Teams

2021-03-01 07:09:20 By Qingyu

Discovery Hailiang Logins

这个东西在若干个群友监督下随机生成的,他们都表示直接通过!

随机生成器是 @Qingyu 瞎写的,有问题就喷他.

在随机现场的 @hydd, @Lenstar 表示这个真的是一次随机生成的.

Login Member 1 Member 2 Member 3
hailiang01 房俊哲 张涵硕 郭思博
hailiang02 贾皓博 楼元培 刘成果
hailiang03 杨久知 徐锐扬 赖可依
hailiang04 蒋帅泉 郑杞珩 胡昊
hailiang05 王鸿翼 时庆钰 潘大卫
hailiang06 姜圻圣 徐子恩 毛艺婷

Yandex Contest 比赛合集

2021-02-20 00:10:12 By Qingyu

因为一些原因去随便找了个爬虫爬了下来所有比赛名称。

下面是部分内容展示,完整版请见附件下载:

Part I: contest.yandex.ru

最后更新:2021.02.19,更新至比赛 id 25209

Название URL
Sample Contest https://contest.yandex.ru/contest/3/enter/
Admin Requests https://contest.yandex.ru/contest/4/enter/
Test Contest #1 - Eternal https://contest.yandex.ru/contest/5/enter/
713 https://contest.yandex.ru/contest/6/enter/
Open Cup in Programming 2008-2009. Round 7. Northern Grand Prix. High division. https://contest.yandex.ru/contest/7/enter/
Contest #187 - Jury Session https://contest.yandex.ru/contest/8/enter/
Ural SU Contest (Petrozavodsk Summer, 2008) https://contest.yandex.ru/contest/9/enter/
Contest #1326 - Jury Session https://contest.yandex.ru/contest/10/enter/
Rocky Mountain SF 2011 https://contest.yandex.ru/contest/11/enter/
Contest 6125 - Jury Session https://contest.yandex.ru/contest/12/enter/
ECNA 2011 https://contest.yandex.ru/contest/13/enter/
ECNA11 - Jury Session https://contest.yandex.ru/contest/14/enter/
Petrozavodsk Training Camp - 2008. Belarusian SU + Kazakhstan Contest https://contest.yandex.ru/contest/15/enter/
CTU Open 2011 https://contest.yandex.ru/contest/17/enter/
CTU Open 2011 - Jury Session https://contest.yandex.ru/contest/18/enter/
Unpredictable Contest 1 - Petrozavodsk Summer, 2008 https://contest.yandex.ru/contest/19/enter/
Unpredictable Contest 1 - Jury Session https://contest.yandex.ru/contest/20/enter/
Petrozavodsk SU WX Contest - Petrozavodsk Summer, 2008 https://contest.yandex.ru/contest/21/enter/
Petrozavodsk SU WX Contest - Jury Session https://contest.yandex.ru/contest/22/enter/
Petrazavodsk 2008, Japanese Contest https://contest.yandex.ru/contest/23/enter/
Andrew Stankevich Contest 18 https://contest.yandex.ru/contest/29/enter/
PTZ 2009, Japanese Contest https://contest.yandex.ru/contest/30/enter/
ACM World Finals 2002 https://contest.yandex.ru/contest/31/enter/
PTZ 2009, day 5 https://contest.yandex.ru/contest/32/enter/
PTZ 2009, day 2 https://contest.yandex.ru/contest/33/enter/
PTZ 2009, day 8 https://contest.yandex.ru/contest/35/enter/
World Finals 2004 https://contest.yandex.ru/contest/36/enter/
World Finals 2005 https://contest.yandex.ru/contest/39/enter/
World Finals 2007 https://contest.yandex.ru/contest/40/enter/
World Finals 2007 (With Standings) https://contest.yandex.ru/contest/41/enter/
ASC, 2009 OpenCup Onsite https://contest.yandex.ru/contest/42/enter/
South Eastern USA https://contest.yandex.ru/contest/43/enter/
PTZ 2009, Ufa tour https://contest.yandex.ru/contest/44/enter/
PTZ2009, ASC 35 https://contest.yandex.ru/contest/45/enter/
Archive https://contest.yandex.ru/contest/46/enter/
Blitz (26 problems) https://contest.yandex.ru/contest/48/enter/
MIPT training camp individual contest 1 https://contest.yandex.ru/contest/53/enter/
ICL Individual Contest virtual https://contest.yandex.ru/contest/54/enter/
MIPT training camp individual contest 2 https://contest.yandex.ru/contest/55/enter/
MIPT Virtual https://contest.yandex.ru/contest/56/enter/
MIPT Virtual 2 https://contest.yandex.ru/contest/57/enter/
A+B Virtual https://contest.yandex.ru/contest/59/enter/
CPR Beta 1 https://contest.yandex.ru/contest/60/enter/
TRGI Day-1 https://contest.yandex.ru/contest/61/enter/
TRGI Day-2 https://contest.yandex.ru/contest/62/enter/
TRGI Day-3 https://contest.yandex.ru/contest/63/enter/
Mirror of XI Open Cup Onsite https://contest.yandex.ru/contest/64/enter/
Moscow Subregional 2006 https://contest.yandex.ru/contest/65/enter/
Moscow Subregional 2008 https://contest.yandex.ru/contest/68/enter/
Moscow Subregional - 2009 https://contest.yandex.ru/contest/72/enter/
Computer Science Center, 1 семестр, упражнения https://contest.yandex.ru/contest/74/enter/
Northern Subregional 2006 https://contest.yandex.ru/contest/75/enter/
Dummy https://contest.yandex.ru/contest/76/enter/
Д/з 3 - A* https://contest.yandex.ru/contest/77/enter/
Яндекс.Контест https://contest.yandex.ru/contest/79/enter/
Northern Subregional 2007 https://contest.yandex.ru/contest/81/enter/
Northern Subregional 2008 https://contest.yandex.ru/contest/84/enter/
SPbAU Homework 1 https://contest.yandex.ru/contest/85/enter/
Test contest for monitoring https://contest.yandex.ru/contest/87/enter/
Яндекс.Контест https://contest.yandex.ru/contest/88/enter/
SPbAU Theoretical Minimum https://contest.yandex.ru/contest/92/enter/
Northern Subregional 2009 https://contest.yandex.ru/contest/93/enter/
Western Subregional 2009 https://contest.yandex.ru/contest/94/enter/
Quarterfinal 1: Moscow-2012 https://contest.yandex.ru/contest/96/enter/
Quarterfinal 2: Western-2012 https://contest.yandex.ru/contest/97/enter/
Quarterfinal 3: Northern-2012 https://contest.yandex.ru/contest/98/enter/
SPbAU Homework 2 https://contest.yandex.ru/contest/99/enter/
Яндекс.Контест https://contest.yandex.ru/contest/102/enter/
Computer Science Center, 1 семестр, домашнее задание https://contest.yandex.ru/contest/103/enter/
Семинар 19.10.12 - Алгоритмы на графах https://contest.yandex.ru/contest/105/enter/
Central Subregional 2012 https://contest.yandex.ru/contest/110/enter/
Southern Subregional 2012 https://contest.yandex.ru/contest/111/enter/
SPbAU Aftersolving https://contest.yandex.ru/contest/112/enter/
Eastern Subregional 2012 https://contest.yandex.ru/contest/113/enter/
WQF12-Pre https://contest.yandex.ru/contest/114/enter/
Д/з 5 - Биномиальная куча https://contest.yandex.ru/contest/115/enter/
Д/з 6 - Максимальный поток https://contest.yandex.ru/contest/116/enter/
Яндекс.Контест https://contest.yandex.ru/contest/117/enter/
Д/з 7 - Дерево Фенвика https://contest.yandex.ru/contest/119/enter/
BAPC 2012 https://contest.yandex.ru/contest/120/enter/
Northern Subregional MIPT Run https://contest.yandex.ru/contest/121/enter/
All-Siberian Olympiad 2008, Day 2 https://contest.yandex.ru/contest/122/enter/
NCPC 2012 https://contest.yandex.ru/contest/123/enter/
MIPT Training Camp Entry Contest: CTU Open 2012 https://contest.yandex.ru/contest/124/enter/
Д/з 8 - Дерево отрезков + LCA + RMQ https://contest.yandex.ru/contest/125/enter/
Rocky Mountain Regional 2012 https://contest.yandex.ru/contest/126/enter/
MIPT Training camp team blitz 1 (12.11.2012) https://contest.yandex.ru/contest/128/enter/
MIPT Training camp team PTZ Selection 1 (13.11.2012) https://contest.yandex.ru/contest/129/enter/
MIPT Training camp team short contest 1 (12.11.2012) https://contest.yandex.ru/contest/130/enter/
MIPT Training camp team blitz 2 (13.11.2012) https://contest.yandex.ru/contest/131/enter/
Д/з 9 - Декартово дерево https://contest.yandex.ru/contest/132/enter/
MIPT Training camp 3D Contest (14.11.2012) https://contest.yandex.ru/contest/133/enter/
Яндекс.Контест https://contest.yandex.ru/contest/134/enter/
MIPT Training camp personal contest https://contest.yandex.ru/contest/135/enter/
MIPT Training camp 2D contest (15.11.2012) https://contest.yandex.ru/contest/136/enter/
MIPT Training camp Graph contest (16.11.2012) https://contest.yandex.ru/contest/137/enter/
MIPT Training camp short contest 2 (17.11.2012) https://contest.yandex.ru/contest/139/enter/
MIPT Training camp Math contest (17.11.2012) https://contest.yandex.ru/contest/141/enter/
MIPT Training camp Final Contest 1 (18.11.2012) https://contest.yandex.ru/contest/143/enter/
MIPT Training camp Final contest 2 (19.11.2012) https://contest.yandex.ru/contest/144/enter/

……

下载附件

迁移

2020-10-13 19:29:37 By Qingyu

不写了

XXI Open Cup 新闻合集

2020-09-29 15:47:48 By Qingyu

本帖所有内容均来自 Open Cup News 频道(https://t.me/opencup_ru), 若信息有冲突请以频道内容为准.

本帖所提及的发帖时间均指莫斯科时间 (UTC +3)

  • 05/27/2020 18:48: The rules for the next season will be adjusted soon, so stay tuned
  • 09/24/2020 13:03: The next season starts with GP of Eurasia at the Sep 27, followed by some GP based on one of Petrozavodsk problemsets in a week and the GP of Korea in two weeks.
  • 09/25/2020 14:24: New changes in the OpenCup rules are coming. First, there will be no Div 1 Yandex Sponsor Championship for NERC ICPC teams this year. Second: the team with participant who is author or tester of the some Grand Prix, earns the team's season average score for this Grand Prix (note that this value changes through whole season and will be finalized only at the season ends). Third: there may be some changes in team formation rule, those changes are under consideration
  • 10/26/2020 14:24: GP of Siberia will be held at the Nov 1, GP of Weihai at the Nov 8. As for Nov 15, there still no decision if there will be any Grand Prix.
  • 11/26/2020 04:08: GP of NorthBeach (aka GP of Bei Sha Tan) will be held at the Nov 29.
  • 12/14/2020 11:09: GP of Xiaomi will be held at the Dec 20. For the teams participated in the MW results from MW will be integrated.. Usual time. The early participation hopefully will be opened very soon.
  • 12/24/2020 02:04: GP of Samara will be held at the Jan 3. 2021. For the teams participated in the MW results from MW will be integrated. Usual time. The early participation will be opened
  • 12/24/2020 02:11: No GP is planned for Dec 27 due to intersection with AtCoder event
  • 01/09/2021 18:24: GP of Nanjing will be held on Jan 10 (tomorrow)
  • 01/28/2021 23:48: GP of Krakow will be held on Jan 31, usual time. For the Petrozavodsk camp teams the camp participation will count
  • 01/28/2021 23:49: Feb 7 and Feb 14 here will be GP too, based on Petrozavodsk contests. Names of the GP will be announced later
  • 01/29/2021 10:30: GP of Nizhny Novgorod will be held on Feb 7, usual time. For the Petrozavodsk camp teams and ICPC/Shanghai Training camp teams the camp participation will count.
  • 02/06/2021 17:03: GP of Belarus will be held on Feb 14, usual time. For the Petrozavodsk camp teams the camp participation will count
  • 02/06/2021 17:04: GP of Suwon will be held on Feb 21, usual time. For the Petrozavodsk camp teams the camp participation will count
  • 02/25/2021 04:12: GP of Tokyo will be held on Feb 28, usual time.
  • 04/23/2021 23:18: GP of China will be held on May 2, usual time. For the MW teams the camp participation will count
  • 05/03/2021 21:43: GP of Urals will be held on May 9, usual time. Ural championship onsite teams results will be counted
  • 05/03/2021 21:44: With good chances there will be two GP at May 16 and May 23, names and other details will be told at short time
  • 05/06/2021 14:11: The GP at May 16 is cancelled. GP of Southern Europe will be held on May 23, usual time.
  • 05/16/2021 21:15: Due to SEERC is moved from Sat to Sun, the GP of Southern Europe will start at 16:00 Moscow time (5 hours later than the standard time). The ext teams link appears approximatelly at the standard time or hour later.
  • 05/16/2021 21:16: Today the final contest for the XX Open Cup was held online. The winner is USA1, the runner-up is Past Glory, third place goes to Polish Mafia. Congratultations to the winners!
  • 05/23/2021 11:06: The ext teams may start the GP of Southeastern Europe from now. The link for the GP of Southeastern Europe is http://official.contest.yandex.com/opencupXXI/contest/27619/enter
  • 06/02/2021 17:21: GP of Beijing will be held on June 6, usual time, on the CCPC Finals tasks

本帖最后更新于 06/03/2021 09:58 (UTC +3)

Easy Contest Tutorial

2020-07-10 16:04:03 By Qingyu

A

把所有形如$(a,ka)$的路径提出来,共有$O(n\log n)$条路径,后面将这种路径称为限制。

考虑答案路径如果要不合法,那么必然覆盖了至少一条完整的限制。

考虑覆盖限制$(u,v)$的路径$(a,b)$,设$dfn_x$表示$x$的$dfs$序,$end_x$表示$x$的子树中最大的$dfs$序,不妨设$dfn_u < dfn_v,dfn_a < dfn_b$。

  1. 当$u$是$v$的祖先的时候,考虑$g$是离$u$最近的路径$(u,v)$上的点,要么$dfn_a < dfn_g,dfn_v\leq dfn_b\leq end_v$,要么$dfn_v\leq dfn_a\leq end_v,dfn_b>end_g$。
  2. 当$u$不是$v$的祖先的时候,显然$dfn_u\leq dfn_a\leq end_u, dfn_v\leq dfn_b\leq end_v$。

第一种情况构成了$2$个矩形,第二种情况构成了$1$个矩形。

最终我们只要求出所有矩形的并然后取个反即可,扫描线$+$线段树,总复杂度$O(n\log^2 n)$。

B

观察一下可以发现,如果将同一行与同一列的$1$用边连起来,一种方案可以拆成很多个环,从这个方面入手。

设$f_n$表示$n\times n$矩阵的答案,我们枚举第一行所在环的大小,那么有递推式: $$f_n = \sum_{i = 2}^{n}A_i\cdot \binom{n}{i}\cdot \binom{n - 1}{i - 1}\cdot f_{n - i}$$

其中$A_i$表示$i\times i$的矩阵只有一个环的方案数,$\binom{n}{i}$表示选出$i$列,$\binom{n-1}{i-1}$表示选出除了第$1$行的剩下的$i-1$行。

先给出结论:$A_n = \frac{n!(n-1)!}{2}$,那么式子化成: $$f_n = \sum_{i = 2}^{n}\frac{i!(i-1)!}{2}\cdot \binom{n}{i}\cdot \binom{n - 1}{i - 1}\cdot f_{n - i}$$

将组合数拆开化简,得到: $$f_n = \frac{n!(n-1)!}{2}\sum_{i = 2}^{n}\frac{f_{n-i}}{((n-i)!)^2}$$

设$g_n = \frac{f_n}{(n!)^2}$,那么有: $$g_n = \frac{1}{2n}\sum_{i = 2}^{n}g_{n - i}$$

维护前缀和即可,复杂度$O(n)$。

现在考虑怎么证明$A_n = \frac{n!(n-1)!}{2}$。

先$n!$每行每列放一个$1$,设$p_i$表示第$i$行$1$的列编号。在$p_1$列放第二个$1$ 有$n-1$种方案,假设第二个$1$行号为$q_i$,那么接下来考虑$p_{q_i}$列,这列第二个$1$有$n-2$ 种放法,因为不能在此时返回第一行,再加上已有$2$个$1$的行不能再放$1$。接下来就是$n-3...$。除以二是因为这个过程的逆过程也被计算过了。

C

一眼费用流裸题,但是数据范围有点大,考虑动态维护流量。

设当前加入的点编号为$x$,因为深度是$O(\log n)$的,因此我们可以枚举$x$和$x$要到的点的LCA,对于当前LCA设为$g$,我们需要求出$g$往子树中走最小的代价使得可以流到一个还有剩余容量的点,设为$down_g$。注意子树中行走的代价可以根据每条边的流量正负来确定,因此要维护每条边的流量,其实就是手动维护网路流。我们需要求出$down_g+cost(x\rightarrow g)$中代价最小的那个,然后暴力维护每条边的流量即可。

复杂度$O(n\log n)$。

共 48 篇博客
  • 1
  • 2
  • 3
  • 4
  • 5