上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 30 下一页
摘要: 数据结构 树状数组 线段树 主席树 splay lct 字符串 KMP 字符串hash AC自动机 字典树 杂 思维 贪心 博弈 二分 && 三分 双指针 分治 CDQ 点分治 图 Tarjian缩点 最短路 Dijkstra ballman_ford 欧拉回路 最小生成树 拓扑排序 网络流 常用算 阅读全文
posted @ 2018-05-26 23:37 Schenker 阅读(393) 评论(0) 推荐(1) 编辑
摘要: SPOJ - 3267 主席树的又一种写法。 从后端点开始添加主席树, 然后如果遇到出现过的元素先把那个点删除, 再更新树, 最后查询区间就好了。 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define Fopen freopen("_i 阅读全文
posted @ 2018-05-26 21:08 Schenker 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Dynamic Rankings 带修改的区间第K大其实就是先和静态区间第K大的操作一样。先建立一颗主席树, 然后再在树状数组的每一个节点开线段树(其实也是主席树,共用节点), 每次修改的时候都按照树状数组的方式去修改,并且修改那些地方。查询的时候就是查询原主席树+树状数组的值。 代码: 1 #in 阅读全文
posted @ 2018-05-26 13:04 Schenker 阅读(188) 评论(0) 推荐(0) 编辑
摘要: Souvenirs 题意:给你n个数, m次询问, 对于每次一次询问, 求出询问区间内绝对值差值的最小值。 题解:先按查询的右端点从小到大sort一下,然后对于塞入一个数的时候, 就处理出所有左端点到目前位置的点, 然后查询。 首先对于一个区间 [L,now] 和 另一个区间来说 [l+1,now] 阅读全文
posted @ 2018-05-24 18:20 Schenker 阅读(252) 评论(0) 推荐(0) 编辑
摘要: Isomorphic Strings 题意:给你一个长度为n的字符串, m次询问, 每次输入一个s, t, l, 是的 [s,s+l-1] 与 [t,t+l-1] 里面的字符一一对应。并且只能一对一 不能一对多也不能多对一。 题解:Hash求解, 对于这段区间, 找到某个字符对应的字符, 将Hash 阅读全文
posted @ 2018-05-23 14:58 Schenker 阅读(245) 评论(0) 推荐(0) 编辑
摘要: Pencils and Boxes 题意: n支铅笔,每只笔有一个颜色值, 无限个盒子, 如果一个盒子里面放笔的话, 就至少需要k支笔装在一起,并且一个盒子里面的笔的颜色值只差 不能大于 d。如果满足条件就输出YES,不满足就输出NO 题解: 对于这一条直线来说, B,C的长度为K+1, && va 阅读全文
posted @ 2018-05-22 23:32 Schenker 阅读(239) 评论(0) 推荐(0) 编辑
摘要: GRE Words Revenge 题意和思路都和上一篇差不多。 有一个区别就是需要移动字符串。关于这个字符串,可以用3次reverse来转换, 前面部分翻转一下, 后面部分翻转一下, 最后整个串翻转一下就好了。 注意就是多组测试,需要初始化。 1 #include<bits/stdc++.h> 2 阅读全文
posted @ 2018-05-20 21:07 Schenker 阅读(207) 评论(0) 推荐(0) 编辑
摘要: String Set Queries 题意:给你3种操作,1、加入一个串到集合中。 2、删除集合中的某一个串 3、查询集合中的字符串在给定的字符串种出现几次。(同一个串可重复) 解法:建立多个AC自动机,用二进制分组来处理。 加入给你21个串: 分为 16+4+1,再添加一个串的时候,即21+1, 阅读全文
posted @ 2018-05-20 16:17 Schenker 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 线段树原理 线段树是一颗二叉树,他的每个节点对应的都是一个区间,主要是通过对区间的分割和合并来修改节点的值, 然后再得到答案。 现在给你一个 目的为求区间和 所造出来的线段树 线段树。如下图所示。 仔细观察,第一二三行方框内的值是他的下面2个子区间的和, 第四行的方框内的数字代表的是自身的值, 蓝色 阅读全文
posted @ 2018-05-18 23:32 Schenker 阅读(860) 评论(4) 推荐(1) 编辑
摘要: Kuro and GCD and XOR and SUM 题意:给你一个空数组。 然后有2个操作, 1是往这个数组里面插入某个值, 2.给你一个x, k, s。要求在数组中找到一个v,使得k|gcd(x,v) (即gcd(x,v)是k的倍数,v+x <= k, x ^ v的值最大。 题解:XOR亦或 阅读全文
posted @ 2018-05-18 19:30 Schenker 阅读(189) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 30 下一页