- 博客(3)
- 收藏
- 关注
原创 RMQ 和LCA
现在我们要不断地建立新的节点,怎么处理?线段树是不能新加点的,也不能把每个点都预留1e5个子节点,不然会爆掉。(当然这句话,如果明白了线段树 dfs序的话,你会觉得是一个废话。。因为好像都和具体哪个点没有关系,只不过是多了两个in out 数组,仅此而已)采用离线处理的方法来解决这个问题,刚开始把所有的信息都读入下来,存储下来,加点的操作直接建边就可以。在已经有了这个树的前提下,跑一遍DFS序,然后之后套模板就可以。
2023-04-08 22:04:57 100 1
原创 784 -DIV4补题
E题:题目描述:对于一组字符串,每个字符串都是两个小写字母,然后如果两个字符串可以其中仅且只一个位置上面对应的字母相当,就认为这两个可以成为一对。问最后最多有几对。思路:exactly in one position 这句话,明确的告诉我们,第一个字符第二个字符要分开,暴力肯定会超时,对每个串,转化为数组里的大小就可。用 a[26]存储第一个字母是i的个数。i=s[0]-'a'. 用b[2]存储第二个字母是i的个数,用c[i][i]存两个位置的,是为了除掉特殊情况。之后对于一个新的字符.
2022-04-24 15:51:12 204
原创 CF780(div3)补题。
C题:题意:分析题意:给一串字符串,为了使得最后得到一个字符串有偶数个元素,且奇数位置的元素i与i+1未知的元素一样,求最少删去多少个字母。算法思路:如果现在是这样:aabcoo...因为oo连续,最后留下来的字符串要尽可能地长,无论oo后面如何排列,都不会出现删掉oo比删掉bc更符合题意的情况。所以可以得出:我们要记录字母是否出现(用bool型数组),之后再出现的时候,把前面的元素都删掉就可以。然后每次得到这样一对,最终字符串的长度,len+=2 最终输出原先长度减去len
2022-04-16 21:14:50 331
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人