CF628(EDU8) 题解 / 关于单位流量网络流时间复杂度的学习笔记

· · 题解

A. Tennis Tournament:

:::::info[题目基本信息] 考察:数学,模拟。
题目简介:
小 K 去参加了一场乒乓球比赛,有 n 名选手,不断进行若干轮比赛,直至还剩 1 人,下面是详细的比赛过程:
::::info[一次比赛的定义] 一次比赛有 2 人,其中比赛结果不可能出现平局,2 人中输的人淘汰。
:::: ::::info[一轮比赛的定义] 设有 m 个人未被淘汰,令 k 为最小的正整数使得 2^k\le m2^k 名选手进行 2^{k-1} 次比赛,剩余选手直接晋级(不参加比赛)。
:::: 已知每位选手每次比赛需要 b 瓶水,每次比赛的裁判需要 1 瓶水,同时每位选手每场比赛需要 p 块毛巾,问总共需要多少瓶水和多少块毛巾。
数据范围:

数据范围:

故我们固定右上点,想要快速统计贡献,所以我们维护以 (i,j) 点为右端点的极长 z 序列长度 a_{i,j} 以及以 (i,j) 点为右上端点的极长 z 序列长度 b_{i,j},则右下点的横坐标(这里的横坐标与平面直角坐标系的横坐标相反)rx 就必须满足 i\le rx\le i+\min(a_{i,j},b_{i,j})-1
但并非每一个都满足要求,还要满足 j-a_{rx,j}+1\le j-(rx-i)
对上式根据参变分离法移项并合并同类项得 rx-a_{rx,j}+1\le i,这时就很显然了,对于每一列建立树状数组维护即可。
时间复杂度为 \Theta(nm\log n),空间复杂度为 \Theta(nm)
:::::warning[坑点] 本题卡空间,需要关闭 long long,仅对最后答案开 long long
:::::

F. Bear and Fair Set:

:::::info[题目基本信息] 考察:最大流。
题目简介:
小 Z 收到了一些限制条件,他想知道是否存在一个集合 S 满足下面这些条件:

数据范围: