随笔分类 -  数据结构

摘要:题目链接 #1381 : Little Y's Tree 题目链接 #1381 : Little Y's Tree 时间限制:24000ms 单点时限:4000ms 内存限制:512MB 描述 小Y有一棵n个节点的树,每条边都有正的边权。 小J有q个询问,每次小J会删掉这个树中的k条边,这棵树被分成 阅读全文
posted @ 2016-09-27 21:07 Running_Time 阅读(650) 评论(0) 推荐(0)
摘要:题目链接 题意: 有n个点m条边的无向图,有环还有重边,a到b的稳定性的定义是有多少条边,单独删去会使a和b不连通。有两种操作: 1. 删去a到b的一条边 2. 询问a到b的稳定性 思路: 首先删边考虑离线,倒着做,相对于加边。先用并查集建一棵树,最精简的图,初始化树上的每条边权值为1,那么在a和b 阅读全文
posted @ 2016-07-18 10:19 Running_Time 阅读(207) 评论(0) 推荐(0)
摘要:题目链接 题意: 有n个点的一棵树。其中树上有m条已知的链,每条链有一个权值。从中选出任意个不相交的链使得链的权值和最大。 思路: 树形DP。设dp[i]表示i的子树下的最优权值和,sum[i]表示不考虑i点时子树的最优权值和,即(j是i的儿子),显然dp[i]>=sum[i]。那么问题是考虑i点时 阅读全文
posted @ 2016-07-18 09:35 Running_Time 阅读(254) 评论(0) 推荐(0)
摘要:题目链接 题意: 分粮食我就当成涂色了。有n个点的一棵树,在a到b的路上都涂上c颜色,颜色可重复叠加,问最后每一个点的最大颜色数量的颜色类型。 思路: 首先这题的输出是每一个点最后的情况,考虑离线做法。简化版问题:在一条线段上涂色,问每个点的最后的情况,假设在[a, b]区间涂色,那么在开始的位置a 阅读全文
posted @ 2016-07-18 08:53 Running_Time 阅读(307) 评论(1) 推荐(0)
摘要:题目链接 题意: 有n个点的一棵树,两种操作: 1. a到b的路径上,给一个y,对于路径上每一条边,进行操作,问最后的y; 2. 修改某个条边p的值为c 思路: 链上操作的问题,想树链剖分和LCT,对于第一种操作,因为是向下取整,考虑y除以路径上所有边乘积,即;对于第二种操作,就是线段树上的单点更新 阅读全文
posted @ 2016-07-18 08:10 Running_Time 阅读(338) 评论(0) 推荐(0)
摘要:题目链接 题意: A和B轮流在建造一个字,每次添加一个字符,要求是给定的n个串的某一个的前缀,不能添加字符的人输掉游戏,输掉的人先手下一轮的游戏。问A先手,经过k轮游戏,最后胜利的人是谁。 思路: 很显然先将n个字符串插入到字典树上,因为字典树上有分叉,不能仅仅判断字符串长度奇偶性来判断。字典树看成 阅读全文
posted @ 2016-07-15 20:15 Running_Time 阅读(356) 评论(0) 推荐(0)
摘要:题目链接 题意: 给定一棵树,每条边有黑白两种颜色,初始都是白色,现在有三种操作: 1 u v:u到v路径(最短)上的边都取成相反的颜色 2 u v:u到v路径上相邻的边都取成相反的颜色(相邻即仅有一个节点在路径上) 3 u v:查询u到v路径上有多少个黑色边 思路: 对树进行树链剖分,分成重链和轻 阅读全文
posted @ 2016-07-14 08:47 Running_Time 阅读(294) 评论(0) 推荐(0)
摘要:题目链接 题意: 一棵以1为根的树,树上每个节点有颜色标记(<=60),有两种操作: 1. 可以把某个节点的子树的节点(包括本身)都改成某种颜色 2. 查询某个节点的子树上(包括本身)有多少个不同的颜色 思路: 和2012年多校第7场的G题是同类题,DFS序处理出每个节点管辖的管辖范围[L[u], 阅读全文
posted @ 2016-07-11 10:39 Running_Time 阅读(278) 评论(0) 推荐(0)
摘要:题目链接 XOR 游戏 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 256 Accepted Submission(s): 86 Proble 阅读全文
posted @ 2016-06-01 13:01 Running_Time 阅读(348) 评论(0) 推荐(0)
摘要:题目链接 题意: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身 分析:树链剖分第一题,把树拆成一条条链, 阅读全文
posted @ 2016-05-20 13:48 Running_Time 阅读(211) 评论(0) 推荐(0)
摘要:最短路+拆点 A As long as Binbin loves Sangsang 题意:从1走到n,每次都是LOVE,问到n时路径是连续多个"LOVE"的最短距离.秀恩爱不想吐槽. 分析:在普通的最短路上有寻路的限制,把一个点看成4个点,表示通过某一个字符到该点的最短距离.注意自环的处理,还有距离 阅读全文
posted @ 2016-05-19 17:46 Running_Time 阅读(231) 评论(0) 推荐(0)
摘要:题目链接 裸二维树状数组 阅读全文
posted @ 2016-05-17 21:46 Running_Time 阅读(140) 评论(0) 推荐(0)
摘要:逆元 1001 Problem A 求前缀哈希和逆元 dp 1002 Problem B 状态转移方程:dp[i] = dp[i-1] + dp[i-2],Java写大数 字典树 1003 Problem C STL 1004 Problem D map或者双hash 阅读全文
posted @ 2016-05-14 17:36 Running_Time 阅读(556) 评论(0) 推荐(0)
摘要:容斥原理 A Number Sequence 题意:给出n个数,b1,b2,b3……bn,构造n个数,a1,a2,……an(ai>1),使得a1*a2*a3……an=b1*b2……bn 分析:容易想到的是将bi分解质因数,然后记录每个质因数的个数。那么题目变成:对于(每个质因数个数为m个划分到n个不 阅读全文
posted @ 2016-05-05 22:15 Running_Time 阅读(195) 评论(0) 推荐(0)
摘要:前三题水 A B C 几何(叉积) D - Bicycle Race 题意:一个人从最下面的位置逆时针沿着湖转一圈,当转角指向湖的方向认为是危险的,问有多少个危险的转角. 分析:分类讨论也就四种情况,但是注意出发点不一定是最左边的(最下面的);也可以用叉积来判断,大于0表示是顺时针满足危险的定义. 阅读全文
posted @ 2016-04-05 08:15 Running_Time 阅读(299) 评论(0) 推荐(0)
摘要:DFS A - Joysticks 嫌麻烦直接DFS暴搜吧,有坑点是当前电量<=1就不能再掉电,直接结束。 构造 + 贪心 B - Beautiful Paintings 每次取出不重复的递增序列,直到集合为空 数学 + 容斥 C - Watchmen 化简公式得到找到pair (i, j) xi 阅读全文
posted @ 2016-03-09 14:42 Running_Time 阅读(257) 评论(0) 推荐(0)
摘要:水 A - Interview 注意是或不是异或 #include <bits/stdc++.h> int a[1005], b[1005]; int main() { int n; scanf ("%d", &n); for (int i=0; i<n; ++i) { scanf ("%d", a 阅读全文
posted @ 2016-03-06 09:04 Running_Time 阅读(327) 评论(0) 推荐(0)
摘要:暴力 A - Ebony and Ivory import java.util.*; import java.io.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner (n 阅读全文
posted @ 2016-02-29 16:25 Running_Time 阅读(275) 评论(1) 推荐(0)
摘要:题目传送门 题意:训练指南P250 分析:DFS记忆化搜索,范围或者说是图是已知的字串构成的自动机图,那么用 | (1 << i)表示包含第i个字串,如果长度为len,且st == (1 << m) - 1则是可能的。打印与之前相似。 #include <bits/stdc++.h> using n 阅读全文
posted @ 2016-02-26 20:27 Running_Time 阅读(570) 评论(0) 推荐(0)
摘要:题目传送门 题意:训练指南P248 分析:第一个操作可以用并查集实现,保存某集合的最小高度和最大高度以及城市个数。运用线段树成端更新来统计一个区间高度的个数,此时高度需要离散化。这题两种数据结构一起使用,联系紧密。 #include <bits/stdc++.h> using namespace s 阅读全文
posted @ 2016-02-26 19:14 Running_Time 阅读(323) 评论(0) 推荐(0)