数据结构
文章平均质量分 80
「已注销」
混子一个
展开
-
CF 835D D. Palindromic characteristics 字符串hash
题意。 定义k回文,一个是k回文的串 那么他本身是回文,并且左右相等,并且左右是k-1回文 问:一个S,所以字串分别是x回文?输出1----n回文的数目 思路: 直接暴力记忆化搜索!枚举判断就好了,回文和相等的条件都用hash判断就好了,注意下标问题!!!!尤其是回文时候的下标问题!!! 代码: #include using namespace std; #define MEM原创 2017-08-01 02:01:18 · 432 阅读 · 0 评论 -
hdu 6133 树状数组+分类讨论
题意:。。比较复杂,就是一个树有点权,一个点的答案是子树的所有点权的前缀和的和(贪心思想转换后的题意),问所有答案。 首先这是个假题解。。只是提供一个思路。。。数据不强AC了。。。 思路:标解是个启发式合并。。这里尝试另一种做法(因为不会),平均时间复杂度是nlogn^2。(数据弱。。)考虑合并操作复杂,我们可以分为合并暴力,单个儿子直接得答案两种操作解决问题。(看起来很玄学。。),事实上是这原创 2017-08-18 21:06:25 · 290 阅读 · 0 评论 -
hdu 6162 离线树链剖分
题意:一个树,点权,查询x到y路径上 价值在[a,b]之间的点的权值和 思路:剖分模板题,首先要想到离线处理,第一步将查询分为query(x,y,0,b)-query(x,y,0,a);接下来我们就发现了可以按照点权的大小以及查询a的大小离线处理,这样就相当于只查询query(x,y)。。。故直接上个剖分点权的模板 代码: #include using namespace s原创 2017-08-22 18:52:01 · 327 阅读 · 0 评论 -
hdu 6201 树分治
题意:一棵树,边全,点权,点权是书的价格,边权是运费。任选两个点买卖,求最大 利益。 思路:nlogn树分治,当时一看1e5,又是求树上路径的,想也没想直接莽分治,分治的过程中维护最大作为买和卖的利益就好了。 代码: #include using namespace std; #define X first #define Y second #define PB push_back #def原创 2017-09-13 18:24:24 · 427 阅读 · 0 评论 -
hdu 6191 可持久化trie||线段树套trie||trie启发式合并
题意:一个树,q次询问,求xi xor u的子树的max值 思路:考虑可以直接dfs,映射到数轴上,然后就是裸的可持久化trie了。。时间复杂度nlogn,同理nlognlogn可以线段树套trie(这个题没按这个写。。应该可以?参考51nod1295,第一次写可持久化trie就是树套树水过去的。。)同理,如果多个log时间复杂度可以就可以暴力启发式合并。。 可持久化trie代码:原创 2017-09-06 19:58:14 · 371 阅读 · 0 评论 -
2017沈阳网络赛G XOR 分块(分类讨论sqrt)
题意:一棵树,点权,Q次询问,A---B路径上每K个点的异或和 链接:点击打开链接 思路:分类讨论,k小于200,类似dp的预处理,在求lca的过程中可以求出来,k大于200,直接暴力跳,最多跳sqrtn步,其中还带个log的倍增。1200ms AC。。 PS :场上手残。。。 代码: #include using namespace std; const int MAXN = 100原创 2017-09-16 20:11:04 · 248 阅读 · 0 评论 -
计蒜客 A.Artwork 并查集+set
链接:点击打开链接 题意:画直线分区域,问每画完一条线有几个区域 思路:倒着做变成擦直线,合并区域或形成新区域。可以使用并查集来维护。启发:类似拆分的问题都可以倒过来离线变成合并的问题。 代码: #include #define LL long long #define PB push_back #define pii pair #define MP make_pair #define X原创 2017-10-03 22:56:27 · 277 阅读 · 0 评论 -
hdu 6430 bitset暴力
题意: 一棵有根树,1e5,输出每个节点的一个查询,查询定义为:以这个节点为根的树任选两个节点 权值GCD 最大 若没有孩子,则为-1 思路: 群里看见bitset居然有find_first()和find_next(x)的操作,搜了一下抄了一个大佬的思路具体实现就是 暴力子树的因子,用bitset合并,查询就在合并的时候&(保证了因子出现两次)然后find_first一下就行了。因为...原创 2018-11-08 21:13:10 · 175 阅读 · 0 评论