返回顶部

06 2021 档案

摘要:题意:给你一个字符串,选择一个前缀,使其不断复制,直到$len>=k$,如果$len>k$,删去多余的尾部,问你能得到的字典序最小的字符串. 题解:基本思路和E1一样,比较后面的字符和$s[1]$,大于就直接break,小于就继续,等于的话,我们要先找到$s_{1...x}$和$s_{i,i+1,. 阅读全文
posted @ 2021-06-27 22:26 _Kolibri 阅读(82) 评论(0) 推荐(0)
摘要:题意:从$l$每次加$1$加到$r$,每次操作后贡献为每一位数字的改变数,问总贡献是多少 题解:这题问题在于处理$9,19,29,...,89$和$99,199,...,899$,这样的会产生额外贡献的数,不难发现,$ 9,19,29,...,89$这些数,每10个数就会产生额外的2个贡献,以此类推 阅读全文
posted @ 2021-06-11 10:33 _Kolibri 阅读(80) 评论(0) 推荐(0)
摘要:题意:有长度为$k$的数组$b$,问你是否能构造一个长度为$2k-1$的数组$a$,使得对于$a_1,a_2,...,a_{2i-1}$,其中位数是$b_i$. 题解:首先要能看出一个结论,即对于一个有序的序列,我们在其中位数左边添加两个数,会使得中位数的位置左移一个,在其右边添加两个会使得中位数的 阅读全文
posted @ 2021-06-08 19:30 _Kolibri 阅读(77) 评论(0) 推荐(0)
摘要:题意:有$2k$个队伍进行$2k-1$场比赛,1和2比,3和4比,...,每两两决出胜者进行下一轮,现在给你一长度为$2^k-1$的字符串,每个位置代表按顺序的比赛结果,$0$表示下标小的队伍胜,$1$表示下标大的队伍胜,?表示未知,有$q$个询问,每次修改字符串的一个字符,问最后有多少可能的冠军。 阅读全文
posted @ 2021-06-08 01:24 _Kolibri 阅读(86) 评论(0) 推荐(0)
摘要:题意:有一$01$串,$?$既可以表示成$0$也可以表示成$1$,问其所有子串中,问有多少不出现相邻相同字符的子串。 题解:根据题意,合法串一定0101这样的,那么当前位置的1/0肯定是从上个位置的0/1转移过来,如果上个位置的字符和当前相同,那么就重新开始。由此可以写出状态转移方程:\(dp[i] 阅读全文
posted @ 2021-06-08 00:48 _Kolibri 阅读(63) 评论(0) 推荐(0)
摘要:题意:有一字符串,可以将其任意排序,构造完后可以相邻字符两两交换位置,花费为$1$,构造一个复原成原串花费最多的串。 题解:感觉还是不好证明啊,结论就是相同的字符连续在一起一定最优,因为最多只有$4$个字符,所以我们可以全排列,花费就是相对于原串的逆序对数,这里官方题解给的暴力求逆序对的方法感觉很巧 阅读全文
posted @ 2021-06-04 21:51 _Kolibri 阅读(66) 评论(0) 推荐(0)
摘要:题意:有一长度均相同的$01$串集合,每次询问给你一个同长度的$01$串,去和集合中的每个$01$串匹配,若位置$i$的元素相同,则贡献加$w_i$,输出集合中有多少串匹配完后贡献不大于$k$。 题解:集合中元素很少,最多$12$个。先用桶标记集合中的串,然后$O((1<<n)^2)$预处理所有情况 阅读全文
posted @ 2021-06-04 21:33 _Kolibri 阅读(51) 评论(0) 推荐(0)
摘要:题意:有$n$x$n$的矩阵,用$k$x$k$的小矩阵去遍历整个矩阵,求所有$k$x$k$矩阵中遍历时的最小中位数. 题解:二分答案.将原矩阵根据二分的值变成01矩阵,如果元素值不小于$x$就变为$1$,否则就是$0$.对于某个$k$x$k$的小矩阵,统计它的元素和,如果它的和$sum<\lfloo 阅读全文
posted @ 2021-06-01 02:40 _Kolibri 阅读(207) 评论(0) 推荐(0)
摘要:题意:有一颗树,根结点为$1$.$q$个询问,每次问你共有多少经过$u$点且到根节点距离为$d$的点. 题解:这题技巧性好强,我们从根节点遍历整颗树,用时间轴记录搜到和离开的时间$in_i$和$out_i$,同时存入同一深度的所有$in_i$,方便后面计算.对于某个父亲结点$u$,它的一个子树结点为 阅读全文
posted @ 2021-06-01 02:19 _Kolibri 阅读(71) 评论(0) 推荐(0)
摘要:题意:有$n$个人轮流上电梯,电梯送完一个人需要$1$个时刻.电梯有待机和运行两种状态,待机每时刻消耗$E_2$电量,运行每时刻消耗$E_1$电量,若电梯无人使用经过$k$个时刻后会变为待机状态,从待机状态变成运行状态需要消耗$E_3$电量,你可以自定义$k$的值,求出最后一个人走完后的最小消耗总电 阅读全文
posted @ 2021-06-01 01:51 _Kolibri 阅读(98) 评论(0) 推荐(0)
摘要:题意:有$n$个数,可以使任意两个子数组(不重叠)的元素贡献*2,问你操作后整个数组的最大元素和是多少. 题解:假如我们只能操作的一次的话,这题完全可以转换为求最大子段和,即先求出所有元素和,然后再加上最大子段和即可,但是现在我们需要求出两个最大子段和,也就意味着在操作一次的基础上,可以使区间断开分 阅读全文
posted @ 2021-06-01 01:25 _Kolibri 阅读(62) 评论(0) 推荐(0)