![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构综合
文章平均质量分 55
1
kaka0010
退役ACMer/算法竞赛菜鸡
展开
-
P3302 [SDOI2013]森林 主席树+LCA+启发式合并
原题链接:https://www.luogu.com.cn/problem/P3302目录题意分析Code题意一个森林由n个节点m条边组成,满足下列两种操作Q x y k 查询x到y路径上权值第k小的点L x y 将x和y之间连一条边注意本题强制在线分析看到动态建边操作,很多人会想到LCT,这题应该是可以写的,但我不会 。其实这题就是P2633 Count on a tree的加强版,多了一个动态建边的过程。在那道题中,求树上路径的第k小点时,左子树的大小可以转化为siz[u]+si原创 2021-07-07 09:34:22 · 127 阅读 · 0 评论 -
牛客小白月赛36 J.科学幻想 树状数组+哈希+二分
原题链接:https://ac.nowcoder.com/acm/contest/11213/J目录题意分析Code题意给你一个字符串,你有两种操作改变单个字符询问[l1,r1]和[l2,r2][l1,r1]和[l2,r2][l1,r1]和[l2,r2]是否勉强相等(相同位置最多只有一个位置不同)分析很久没在小白月赛写到数据结构题了,其实思路不难想,但比赛被卡线段树了,有点难受 。看到询问字符串是否相等,基本上可以确定是哈希,然后是待修改的哈希,直接在树状数组上维护一下就好了。我们看H原创 2021-07-17 08:34:25 · 168 阅读 · 0 评论 -
牛客练习赛56 C.小魂和他的数列 树状数组优化dp
原题链接:https://ac.nowcoder.com/acm/contest/3566/C目录题意分析Code题意有一个序列含有n个元素,问一共有多少个长度为K的子序列是严格递增的。分析首先,K是具有连续性的,K和K-1具有关联。这样我们可以写出一个状态f[i][j]f[i][j]f[i][j]表示前i个数子序列长度为j的个数,那么转移的方程是f[i][j]=∑f[i−1][j−1](a[i]>a[pre])f[i][j] = \sum_{}f[i-1][j-1](a[i] > a原创 2021-05-14 16:57:02 · 147 阅读 · 1 评论 -
Codeforces Round #710 (Div. 3) G. Maximize the Remaining String 单调栈
原题链接:https://codeforces.ml/contest/1506/problem/G目录题意分析Code题意有一个字符串,你可以删掉一些字符,要求最开始每个字符都至少剩一个且字典序最大分析首先满足单调性,其次要求每个字符都剩至少一个,可以用单调栈解决,记录后面还剩几个该字符,如果没有,就留下,如果还有,就可以被替换Code#include <iostream>#include <cstdio>#include <cstring>#incl原创 2021-04-15 17:40:16 · 97 阅读 · 0 评论 -
Acwing 145.超市(二叉堆 & 贪心)
题目链接题目的大意就是每天可以卖一种商品,但每个商品都有自己的保质期,求最大的收益。转换一下,就是每天都尽量选择最大的商品卖,这里有两种解决方法,一种是贪心,一种是是二叉堆。很容易想到这题的贪心解法,先对商品按价格进行排序,然后再选择在第几天卖掉它,因为我们要尽可能卖掉更多的商品,因此要选择尽量靠后的时间卖掉它。下面看代码#include <bits/stdc++.h>using namespace std;const int N = 100010;int vis[N];int原创 2020-05-31 20:19:10 · 203 阅读 · 0 评论