返回顶部
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 52 下一页
摘要: 题意:有一$01$串,$?$既可以表示成$0$也可以表示成$1$,问其所有子串中,问有多少不出现相邻相同字符的子串。 题解:根据题意,合法串一定0101这样的,那么当前位置的1/0肯定是从上个位置的0/1转移过来,如果上个位置的字符和当前相同,那么就重新开始。由此可以写出状态转移方程:\(dp[i] 阅读全文
posted @ 2021-06-08 00:48 Rayotaku 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 题意:有一字符串,可以将其任意排序,构造完后可以相邻字符两两交换位置,花费为$1$,构造一个复原成原串花费最多的串。 题解:感觉还是不好证明啊,结论就是相同的字符连续在一起一定最优,因为最多只有$4$个字符,所以我们可以全排列,花费就是相对于原串的逆序对数,这里官方题解给的暴力求逆序对的方法感觉很巧 阅读全文
posted @ 2021-06-04 21:51 Rayotaku 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 题意:有一长度均相同的$01$串集合,每次询问给你一个同长度的$01$串,去和集合中的每个$01$串匹配,若位置$i$的元素相同,则贡献加$w_i$,输出集合中有多少串匹配完后贡献不大于$k$。 题解:集合中元素很少,最多$12$个。先用桶标记集合中的串,然后$O((1<<n)^2)$预处理所有情况 阅读全文
posted @ 2021-06-04 21:33 Rayotaku 阅读(43) 评论(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 Rayotaku 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 题意:有一颗树,根结点为$1$.$q$个询问,每次问你共有多少经过$u$点且到根节点距离为$d$的点. 题解:这题技巧性好强,我们从根节点遍历整颗树,用时间轴记录搜到和离开的时间$in_i$和$out_i$,同时存入同一深度的所有$in_i$,方便后面计算.对于某个父亲结点$u$,它的一个子树结点为 阅读全文
posted @ 2021-06-01 02:19 Rayotaku 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 题意:有$n$个人轮流上电梯,电梯送完一个人需要$1$个时刻.电梯有待机和运行两种状态,待机每时刻消耗$E_2$电量,运行每时刻消耗$E_1$电量,若电梯无人使用经过$k$个时刻后会变为待机状态,从待机状态变成运行状态需要消耗$E_3$电量,你可以自定义$k$的值,求出最后一个人走完后的最小消耗总电 阅读全文
posted @ 2021-06-01 01:51 Rayotaku 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 题意:有$n$个数,可以使任意两个子数组(不重叠)的元素贡献*2,问你操作后整个数组的最大元素和是多少. 题解:假如我们只能操作的一次的话,这题完全可以转换为求最大子段和,即先求出所有元素和,然后再加上最大子段和即可,但是现在我们需要求出两个最大子段和,也就意味着在操作一次的基础上,可以使区间断开分 阅读全文
posted @ 2021-06-01 01:25 Rayotaku 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 数列分块入门1-9 1. #6277. 数列分块入门 1 分析:分块基本操作,对于整块直接打上标记,询问的时候加上对应块的标记值即可. 代码: #include <bits/stdc++.h> #define ll long long #define fi first #define se seco 阅读全文
posted @ 2021-05-31 20:21 Rayotaku 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 题意:有一颗树,你需要从根节点开始bfs,将搜到的点按顺序放入栈中,给你一个序列,你需要判断这个序列是否是某一种栈的情况. 题解:存一下序列中每个值的位置,然后对于每个父亲结点,按照所存每个值的位置对儿子进行排序,最后跑bfs判断即可. 代码: #include <bits/stdc++.h> #d 阅读全文
posted @ 2021-05-25 18:00 Rayotaku 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题意:有一颗树,每个结点都有一个取值范围$[L_i,R_i]$,答案为所有相邻点的绝对值之差之和,现在要你确定每个点的值,求最大答案. 题解:求相邻点的最大绝对值之差,那么肯定是取两个点的左端点和右端点最优,树形dp板子题. 代码: #include <bits/stdc++.h> #define 阅读全文
posted @ 2021-05-25 17:33 Rayotaku 阅读(132) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 52 下一页