Edu 106 题解
A贪心填。先尽量填竖着的再填横着的。因为这样最多会浪费 $1$ 个,所以达到了答案的上界。求出上界判断是否 $\leq$ 即可。B枚举一个位置 $i$,前面只保留 $0$ 后面只保留 $1$,判断是否合法即可。C首先第一步横着走还是竖着走都是一样的。我们设第一步横着走。那么横着走只可能用奇数位置的 $c_i$,竖着走只可能用偶数位置的 $c_i$。枚举总共有几段,然后贪心选择最小的即可。注意...
A贪心填。先尽量填竖着的再填横着的。因为这样最多会浪费 $1$ 个,所以达到了答案的上界。求出上界判断是否 $\leq$ 即可。B枚举一个位置 $i$,前面只保留 $0$ 后面只保留 $1$,判断是否合法即可。C首先第一步横着走还是竖着走都是一样的。我们设第一步横着走。那么横着走只可能用奇数位置的 $c_i$,竖着走只可能用偶数位置的 $c_i$。枚举总共有几段,然后贪心选择最小的即可。注意...
A$g(x)$ 实际是求原数和去除后缀 $0$ 后的数的比值,发现第一个不同的值一定会在 $10^x$ 达到,所以答案就是字符串长度。B我们先假设走了 $m$ 步,并且都是走第一种,那么相当于就是走了 $\frac{m(m+1)}{2}$,发现将第 $i$ 个位置改成第二种操作会减少 $i+1$,我们先找到最小的 $m$ 满足 $\frac{m(m+1)}{2} \geq x$ ,设 $r=...
A贪心删除出现次数最少的数。#include <bits/stdc++.h> #define fi first #define se second #define db double #define U unsigned #define P std::pair<int,int> #define LL long long #define pb push_back #d...
A做法一:答案一定是相邻两个的差的最小值。考虑反证法:如果 $[l,r](l+1 < r)$ 是答案,那么中间一定能取到一段小于等于平均数的。做法二:二分答案。首先答案是 $\min_{i,j} \frac{a_i-a_j}{j-i}$,考虑二分最小值,那么相当于对于所有 $j>i$ 要有 $a_i-a_j \geq kj-ki$,也就是 $a_i+k_i \geq a_j+k_...
A我们固定 $s$ ,循环位移所有 $t$,发现答案就是相同的字母对数。而循环位移 $s$ 是本质不变的,所以答案乘个 $n$ 就好了。所以你构造的串中每个字母都要保证是 $s$ 中出现次数最大的,设这样的字母有 $c$ 个,答案显然是 $n^c$。B从高到低位贪心一定是最优的。对于每个点,我们可以通过判断周围点是否存在来确定这个点是否可以取走,每次取走能取的最大/最小后更新周围的点即可。C...