Educational Codeforces Round 110 Playoff Tournament 题解 (Java/C++)
题解 类似于线段树。维护当前比赛以及其前面的比赛的所有可能。以样例为例,初始状态为:…
题解 类似于线段树。维护当前比赛以及其前面的比赛的所有可能。以样例为例,初始状态为:…
题解 首先,我们考量本身就是unstable的串能够拆成多少个字串。对于010101。我们发现,可以拆成6个长度为1的,5个长度为2的,……,以及1个长度为6的unstable子串。因此可得,对于任意长度为n的unstable串,可以有$\frac{n\cdot(n+1)}{2}$种解。…
题解 令原字符串为c。 首先我们可以注意到一个性质:对于i<j,那么一定有$c_{s[i]}\leq c_{s[j]}$。比如对于$[3,2,4,1,0,5,6]$,至少有$c_3\leq c_2\leq c_4\leq c_1\leq c_0\leq c_5\leq c_6$.…
A. Mean Inequality 题解 将数组排序。然后将数组分成两半。每次从两半中各取一个数即可。 代码 Java C++…
题解 首先,如果没有任何限制,我们当然会喝光所有的药水。而事实上,唯一的限制是生命值不能小于0。 那么什么时候生命值会小于0呢?显然是喝的正数的药水的总和小于了喝的负数的药水的总和。…
题解 首先考量Anton是怎么还原才能做到最快。我们发现,Anton其实就是从左往右每次恢复一位。比如从NNOTA恢复到ANTON的第一步是恢复成ANNOT。于是我们想到,大方向就是把字母尽可能拉远,让他每一步都尽可能花费尽可能多的次数。…
A. Eshag Loves Big Arrays 题解 既然可以选择任意子序列。那么只要某个数x,高于了数组的最小值。那么迟早这个x会和某个最小值相邻,并且被删掉。所以统计高于最小值的值的数目就好。…
题解 首先第一个结论是:对于任意一个顶点,要么选择l,要么选择r。因为选择某个l和r之间的值的情况只有一种:就是样例2中的那种。但是其实对于样例2,仍然可以选择l和r中的一个。…