$Div.2$
A BowWow and the Timetable
判断一下读入的数是不是 $0$ 或者 $4$ 的幂次.
B Mislove Has Lost an Array
若首先放入 $1,2,4,\dots 2^{l-1}$ ,剩下的位置都放入 $1$ ,得到的和最小.
若首先放入 $1,2,4,\dots,2^{r-1}$ ,剩下的位置都放入 $2^{r-1}$ ,得到的和最大.
C Anna, Svyatoslav and Maps
如果上个点到下个点的所有最短路都不经过当前点,那么当前点必须选.
$floyd$ 预处理两点间最短路长度后进行判断.
D Kirk and a Binary String
将原串中的 $10$ 子串全部删去,再把剩余的 $1$ 改成 $0$ ,将删掉的 $10$ 放回原位即得答案.
因为这样的子串对 $LIS$ 的贡献只可能是 $1$ ,所以删掉不会造成影响.
E Natasha, Sasha and the Prefix Sums
记 $sum$ 表示 $a$ 的前缀和.
考虑枚举 $x=f(a)$ ,并且枚举第一次得到这个前缀和时,用了 $y$ 个 $1$ .
即,若 $k$ 是第一个使得 $sum(k)=x$ 的位置,从 $1$ 到 $k$ 一共有 $y$ 个 $1$ ,那么从 $1$ 到 $k$ 一共有 $y-x$ 个 $-1$ .
求出这种数列的方案数 $t$ ,那么这些数列对答案的贡献就是 $t\cdot x$ .
由于位置 $k$ 一定是 $1$ ,所以只需要分别求出 $1\sim k-1$ 与 $k+1\sim n+m$ 这两段的方案数,相乘即为 $t$ .
$1\sim k-1$ 的 $1,-1$ 的个数都是确定的,只要求每个位置从 $1$ 开始的前缀和都 $<x$ .
$k+1\sim n+m$ 的 $1,-1$ 个数也是确定的,只要求每个位置从 $k+1$ 开始前缀和都 $\le 0$ .
这两个问题都可以归纳为在二维平面上,从 $(0,0)$ 走到 $(X,Y)$ ,每次只能往右或上走一格,并且不能触碰到直线 $y=x+b$ 的方案数,注意不能跨越也可以转化为不能触碰,将直线向上平移一个位置即可.
设原点关于该直线的对称点为 $P$ ,答案就是从原点走到终点的方案数减去从 $P$ 走到终点的方案数,都不考虑限制.
因为从 $P$ 走到终点的每种方案都恰好对应了一种从原点走到终点,但触碰到了直线的方案.
时间复杂度 $O(n^2)$ .
1 |
|