随笔分类 -  数据结构

摘要:枚举子序列的末尾,递推。方案数:f[i = 以i结尾][k =子序列长度] = sum(f[j][k-1]),j using namespace std;typedef long long ll;const int N = 1e5+5, K = 10;ll C[K][N];ll sum(ll C[]... 阅读全文
posted @ 2015-12-20 12:08 瑞宇 阅读(469) 评论(0) 推荐(0)
摘要:这道题不难想到这样的dp。dp[字符串si] = 以si为结尾的最大总权值。dp[si] = max(dp[sj]) ,1.j #include#include#includeusing namespace std;const int LEN = 3e5+5;const int MAXN = 2e4... 阅读全文
posted @ 2015-12-17 18:04 瑞宇 阅读(294) 评论(0) 推荐(0)
摘要:题意:珠宝大盗Arsen Lupin偷珠宝。在展厅内,每颗珠宝有个一个坐标为(xi,yi)和颜色ci。Arsen Lupin发明了一种设备,可以抓取平行x轴的一条线段下的所有珠宝而不触发警报,唯一的限制是抓取的珠宝不能不能有所有的m种颜色。询问能抓取的最大珠宝数量。分析:要决策的东西有两个,一是这条... 阅读全文
posted @ 2015-12-16 08:56 瑞宇 阅读(358) 评论(0) 推荐(0)
摘要:题面:从前有一个国家,国家里面的城市是树形结构的。这个国家的国王是个萝莉控,爱上了一个小恶魔。小恶魔喜欢制造混乱,经常让国王修改城市之间的道路系统。每条道路有两种颜色,黑与白。修改有两种,一是把城市a和b之间的道路全部翻转颜色,二是把城市a和b之间道路的相邻路翻色。国王的萝莉女儿,WJMZBMR很关... 阅读全文
posted @ 2015-12-15 12:18 瑞宇 阅读(457) 评论(0) 推荐(0)
摘要:分析:无论父节点增加了多少,子节点的增量总比父节点多1。这种差分的关系是保存不变的,我们可以一遍dfs根据结点深度得到在根结点的每个点的系数。估且把一开始的结点深度称做c0吧,对于子树的修改就只是结点的系数就只是c0+d,d是修正值。dfs得到树的dfs序列,子树的结点连续,就变成区间更新了。区间更... 阅读全文
posted @ 2015-12-14 00:01 瑞宇 阅读(323) 评论(0) 推荐(0)
摘要:题意:询问树上结点x到结点y路上上的权值异或z的最大值。任意结点权值≤ 2^16,可以想到用字典树。但是因为是询问某条路径上的字典树,将字典树可持续化,字典树上的结点保存在这条路径上的二进制数。按照dfs序建树,结点u的字典树表示u到根结点路径上的字典树。如果两个结点u和v,在同一条通往根结点的路径... 阅读全文
posted @ 2015-12-13 10:04 瑞宇 阅读(489) 评论(0) 推荐(0)
摘要:先离散,在树上建主席树,主席树具有加减性。那么u和v的路径上的线段树 = Tree(u) + Tree(v) - Tree(lca(u,v))- Tree(fa(lca(u,v)))。不懂的画个图就清楚了。把建可持续化的部分改成迭代了,效率更高了。/*************************... 阅读全文
posted @ 2015-12-11 13:02 瑞宇 阅读(324) 评论(0) 推荐(0)
摘要:筛法+划分树。枚举因子,类似筛法计算因子数量,复杂度为n/2 + n/3 + ... + n/n ≈O(nlogn)。值域已知,只有删除操作,寻找kth,用划分树就好了O(nlogn)。二分+树状数组也可以,只是复杂度多乘一个logn。/*******************************... 阅读全文
posted @ 2015-12-09 00:21 瑞宇 阅读(224) 评论(0) 推荐(0)
摘要:昊昊爱运动 II Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)昊昊喜欢运动他N天内会参加M种运动(每种运动用一个[1,m]的整数表示)现在有Q个操作,操作描述如下昊昊把第l天到第r天的... 阅读全文
posted @ 2015-12-08 13:32 瑞宇 阅读(341) 评论(0) 推荐(0)
摘要:先用dijkstra把最短路树建出来,然后就是树的质心分治了。经过k个点的路径,要么全在子树上,要么经过根结点,因此可以分治。如果分治的时候选点不好会变成O(n^2),比较极端的情况是比如树是一条链。选择质心可以保证最大子树结点不超过n/2,每次递归至少减半,递归层数是O(logn)的。找子树质心是... 阅读全文
posted @ 2015-12-07 17:38 瑞宇 阅读(253) 评论(0) 推荐(0)
摘要:题意:询问区间唯一元素个数,单点修改。分析:借助Unique snowflakes,Can you answer these queries II的思想,唯一性可以借助元素上一次出现的位置来判断。对于询问(x,y),只要回答[x,y)区间内,上一次出现位置prv[i] #include#includ... 阅读全文
posted @ 2015-12-06 14:24 瑞宇 阅读(484) 评论(0) 推荐(0)
摘要:题意:求矩形覆盖k次以上的区域总面积。因为k≤10,可以在线段树上维护覆盖次数为0,...,k, ≥k的长度数量。然后就是一个离散化以后扫描线的问题了。离散化用的是半开半闭区间,以方便表示没有被覆盖的区间。/**********************************************... 阅读全文
posted @ 2015-12-05 18:41 瑞宇 阅读(270) 评论(0) 推荐(0)
摘要:很好的一道题,想了很久。首先突破的是,可以找到枚举其中一边,假设是尾部y,然后快速找出满足条件的最大的头部x,连续区间的和很容易想到借助部分和的思想,如果是从y开始往前面累加,那么就是一个关于y的后缀和。如果答案的一边在y,那么就转化成了对后缀和的RMQ。y的后缀和y-1或者y+1的后缀是差不多的,... 阅读全文
posted @ 2015-12-03 19:44 瑞宇 阅读(289) 评论(0) 推荐(0)
摘要:cdq分治,dp(i)表示以i为结尾的最长LIS,那么dp的递推是依赖于左边的。因此在分治的时候需要利用左边的子问题来递推右边。(345ms? 区间树TLE/********************************************************** -... 阅读全文
posted @ 2015-12-02 08:43 瑞宇 阅读(238) 评论(0) 推荐(0)
摘要:纠结了好久的一道题,以前是用线段树套平衡树二分做的,感觉时间复杂度和分块差不多了。。。终于用BIT套函数式线段树了过了,120ms就是快,此题主要是卡内存。假设离散后有ns个不同的值,递归层数是log2(ns)左右,nlog(ns),主席树是前缀区间,BIT保存修改的值是mlog2(ns)log2(... 阅读全文
posted @ 2015-12-01 12:17 瑞宇 阅读(257) 评论(0) 推荐(0)
摘要:相交区间选尽量少的点是可以贪心的,右端点排序以后,尽量往右边放可以得到可以使得点在区间尽可能多。但是我只想到了O(n)的维护方法。(数据比较水,能过...或者是前缀和可以写sum(bi) - sum(ai-1)≥ ci再加上前缀和的单调性 sum(i) - sum(i-1)≥ 0以及一个点只能选一次... 阅读全文
posted @ 2015-11-30 10:30 瑞宇 阅读(436) 评论(0) 推荐(0)
摘要:小鸟往四个方向飞都枚举一下,数据范围没给,离散以后按在其中一个轴线排序,在线段树上更新墙的id,然后就是点查询在在哪个墙上了。这题有个trick,因为数据范围没给我老以为是inf设置小了,WA了很多发。(距离可能比0x3f3f3f3f大实现上,我是把鸟和墙的坐标放一起的,用下标来区别两者。/****... 阅读全文
posted @ 2015-11-29 12:56 瑞宇 阅读(445) 评论(0) 推荐(0)
摘要:不存在-1的情况,而且最多一轮就结束了。如果新增加的黑点v0会产生新的黑点v1,那么v0和v1肯定是在一条轴上的,而原来这条轴上已经有黑点了。离散以后扫描线统计,往线段上插点,然后查询区间上点数。不妨以x为主轴,用一条条平行于y轴的线去扫。按照x为主y为副排序以后,记录下标,将下标按y为主排序,为的... 阅读全文
posted @ 2015-11-29 12:32 瑞宇 阅读(578) 评论(0) 推荐(0)
摘要:BIT更新一个区间的前缀和是很容易的,modify操作修改的是[x,N]的所有前缀和(也就是修改的是一个后缀)。二维的也是容斥一下就好了。对于查询的(x,y),回答前缀和(x,y)就好了。/*******************************************************... 阅读全文
posted @ 2015-11-29 11:19 瑞宇 阅读(166) 评论(0) 推荐(0)
摘要:题目的数学模型:求,和号:|Xi-Xj|*max(Vi,Vj),i != j.按照大小顺序枚举可以处理取max的问题,假如从小到大枚举到Vi,对另外一部分,XXi的情况,维护一下总和减一减。#include#include#include#include#include#include#includ... 阅读全文
posted @ 2015-11-28 01:41 瑞宇 阅读(188) 评论(0) 推荐(0)