返回顶部
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 52 下一页
摘要: 题意:有一个长度为$n$的数组,你可以从中选一些数出来使得它们的和不大于$t$,问能选出来的最大的和是多少. 题解:$n$的数据范围是$40$,直接二进制枚举贴TLE,之前写过这样的一道题,数据范围也是$40$,我们可以将$40$对半分,用两个数组分别记录$n/2$个数,然后再用两个数组记录它们二进 阅读全文
posted @ 2020-11-28 01:48 Rayotaku 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一张图,$S$表示起点,$G$表示终点,$.$表示可以走,#表示不能走,小写字母可以传送到任意一个相同的字母的位置,问从$S$走到$G$的最小步数. 题解:假如不考虑字母的话,就是一个经典的bfs,当我们走到字母时,将其它相同字母的位置入队,之后就不会再将它们入队了,因为之后走到这个字母的 阅读全文
posted @ 2020-11-28 01:30 Rayotaku 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题意:给你带边权的树,有$m$次询问,每次询问有多少点对$(u,v)$之间简单路径上的最大边权不超过$q_i$. 题解:真的想不到用最小生成树来写啊.... 我们对边权排序,然后再对询问的$q_i$排序,我们可以枚举$q_i$,然后从last开始遍历边权,如果边权不大于$q_i$,那么就可以用并查集 阅读全文
posted @ 2020-11-27 09:58 Rayotaku 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 题意:给你两个长度为$2$的字符串$s$和$t$,你需要构造一个长度为$3n$的字符串,满足:含有$n$个$a$,$n$个$b$,$n$个$c$,并且$s$和$t$不能是它的子串. 题解:首先,假如所给的长度为$2$的字符串两两不相等,那么我们一定可以构造一个类似$aaaabbbbcccc$这样的相 阅读全文
posted @ 2020-11-26 22:33 Rayotaku 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个$n$个点,$n$条边的图,问你长度至少为$1$的简单路径有多少条. 题解:根据树的性质,我们知道这颗树一定存在一个环,假如一棵树没有环,那么它的所有长度不小于$1$的简单路径数一定是$\frac{n*(n-1)}{2}$,因为每个点都可以和其他任意一个点形成一条路径,除以$2$表示去除 阅读全文
posted @ 2020-11-26 22:20 Rayotaku 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个$n$个点的完全$k$叉树的先序遍历序列$a$,还原这颗树并且求所有两个端点的异或和. 题解:用dfs在还原树的时候,把子节点和父亲节点的异或贡献给答案,对于每个节点,我们找它所有的子节点(从左到右),如果子节点合法就不断递归求贡献即可. 代码: class Solution { pu 阅读全文
posted @ 2020-11-25 15:30 Rayotaku 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个模式串$t$,现在要在主串$s$中删除多个子串,使得得到的$s$的子序列依然包含$t$,问能删除的最长子串长度. 题解:首先,我们不难想到,我们可以选择$s$头部到最右边的子序列的头部和最左边的子序列的尾部到$s$的尾部这两个子串,除去这两个子串,我们要找的最大子串一定在子序列的头部到 阅读全文
posted @ 2020-11-24 15:40 Rayotaku 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一组数,每个数都可以进行一次加一减一,问最后最多能有多少不同的数. 题解:我们可以用桶存每个数的次数,然后枚举$[1,150001]$来求对答案的贡献,然后贪心,这里我们不用担心其他乱七八糟的东西,直接根据桶中的个数来求贡献即可,但是要先选$i-1$的情况,因为后面的数取不到$i-1$,假 阅读全文
posted @ 2020-11-24 15:25 Rayotaku 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题意:给你两个长度为$n$的数组$a$和$b$,元素值在$[0,n-1]$,可以对$b$数组的元素任意排序,求新数组$c$,满足$c_i=(a_i+b_i)\ mod\ n$,并且使得其字典序最小. 题解:这种取模求最小的题,我们一眼就能看出最优情况一定是$b_i=n-a_i$,可以先用set存一下 阅读全文
posted @ 2020-11-18 11:35 Rayotaku 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一组数,每次可以选队首或队尾的数放入栈中,栈中元素必须保持严格单增,问栈中最多能有多少元素,并输出选择情况. 题解:首先考虑队首和队尾元素不相等的情况,如果两个数都大于栈顶元素,那么我们选小的放进去,否则选择比栈顶元素大的放进去,该题重点在于队首和队尾元素相同的情况,由于他们相同,那么我们 阅读全文
posted @ 2020-11-18 11:25 Rayotaku 阅读(76) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 52 下一页