09 2017 档案
摘要:"题目链接" 题意: 在一棵n个节点的树上,由于某种原因,树的无向边变成了有向边,这样就不是一个强连通的图了,问最少添加几条特殊路径,能够让树上的任意两点可互相抵达。 特殊路径满足以下几个条件: + 必须由树上连续的边组成 + 必须是树上有向边的反向边组成 + 一条路径上每个节点最多出现一次 + 多
阅读全文
摘要:"题目链接" 题意: 在一棵n节点的树上,求树上各点到树上某一点的最长距离。 思路: 先进行一遍任意节点开始的BFS,找到最远的节点,在以该点为起始点BFS,得到各个点到它的距离,并找到离他最远的节点,可以证明,树上任意一节点的最远距离,要么是到第一次找的最远点的距离,要么是第二次找的最远点的距离。
阅读全文
摘要:"题目链接" 题意: 有n个人,每个人一开始有一定量的钱,之后给了m个关系,每个关系表明两个人可以有金钱的流通,问最后是否可以让每个人的钱都一样。 思路:并查集解决,将可以相互流通金钱的人放在一个集合中,记录集合的人数和集合中的钱的总数,判断每个集合时候金钱可平分,并且每人平均的金钱就是最后的答案的
阅读全文
摘要:"题目链接" 题意: 在一个地图中,将某个字母,以及字母完全包围的区域内全部变成那个字母,输出最后的地图。 思路: BFS从边角开始搜索,查找不是某个字母的区域,将到达不了的区域涂成那个字母,枚举每个字母就好了。 C++ include include include include include
阅读全文
摘要:"题目链接" 稳定婚姻问题: 男方向依次向女方求爱,如果女方没有配偶,则配对,如果女方有配偶,比较配偶和当前求爱的男方,选择好的进行配对,反复如此,直到所有的男方都配对完成。 include include include include include include include includ
阅读全文
摘要:"题目链接" 题意: 在一个二维平面,J只能上下左右移动,F表示火,每过一秒火势会向四周扩散,问J能在几秒之内逃出去(到达边界)。 思路: BFS每次到了一个新的时间就更新地图就好了。其他和地图寻路一样。 C++ include include include include include inc
阅读全文
摘要:"题目链接" 题意: 有一个1~8的排列,正数表示男,负数表示女,可以将男的放在女的左右,也可以将女的放到男的左右,但是必须满足两个数的绝对值之和是一个素数,问最少需要进行几次操作,才能使得序列变得递增有序。 思路: BFS状态结点是一个排列和时间,枚举每一种可能,最先出现的是答案。 状态标记数组开
阅读全文
摘要:"题目链接" 将重排方式看作是m个置换,求每个置换群内元素个数的最小公倍数 并查集处理出每个置换内的元素 C++ include include include using namespace std; int n,a[150]; int fa[150],sum[150]; int find(int
阅读全文
摘要:"题目链接" 给一个序列,查询可以组成6边形的选择方式。 思路: 组成条件是a1a6 想过优化a1+a2+a3a6a5a4,枚举a3或者a4,但是这样仍是O(n4),仍是不行的。 参考了别人的方法,对于a3和a4的选择,只需要选择一个,另
阅读全文
摘要:"题目链接" 题意:给一棵树,树的边上是有权值的。 输入给n 1条边,有两种操作: + CHANGE i j 将第i条边的权值改为j + QUERY i j 询问节点i到节点j路径上的权值最大值 思路: + 树链剖分处理出每条链,放到数组中,使用线段树来维护。 + 因为是边上的权值,所以将其转为点上
阅读全文
摘要:"题目链接" 题意:有一棵树,每个节点有权值 有三种操作: + I c1 c2 k 从节点c1到节点c2的路径上每个节点权值增加k + D c1 c2 k 从节点c1到节点c2的路径上每个节点权值减少k + Q i 查询节点i的权值是多少 思路: + 树链剖分处理出来的链放在数组中,使用树状数组维护
阅读全文
摘要:"题目链接" 题意:有一棵树上,树上的每一个节点都有一个权值。 有两种询问: + 0 i j 询问从i节点到j节点路径上的权值和 + 1 i v 将节点i上的权值更改为v 思路: + 树链剖分的作用: 将每一棵树处理成一条重链和若干条轻链。重链就是对于每一个节点来说,它的众多孩子中,含有节点个数最多
阅读全文
摘要:"题目链接" 思路: 动态规划方法,三元组(i,j,k)刻画状态,三元组表示考虑到第i个位置,已经出现了左括号j个,未匹配的左括号k个。 转移方程: 左括号 ( 坏数+1 dp(i+1,j+1,k+1) = dp(i+1,j+1,k+1) + dp(i,j,k) 右括号 ( 坏数 1 dp(i+1,
阅读全文
摘要:"题目链接" 题意:给定一个序列,从中选择偶数个数,满足某些性质,不改变本来的先后顺序,问有多少种选择方法。 选出的序列 w1,w2,w3,⋯,w2m,需要满足性质: w1+w2mw2+w2m1⋯wm+wm+1 其实如果
阅读全文
摘要:"题目链接" 题意:给一个平面,有两个操作 + 0 x y 在(x,y)处放置一个点 + 1 x1 y1 x2 y2 查询左下角为(x1,y1),右上角为(x2,y2)的矩形区域包含多少个点(包括边界) 使用二维树状数组,矩形面积相减得到目标区域的和 二维数组模板题 "math.h" 中包含了对变量
阅读全文
摘要:"题目链接" 题意: 给定一个序列,有三个操作 + 1 i 输出第i个数的大小,并将其变为0 + 2 i v 第i个数增加v + 3 i j 输出第i个数到第j个数的和 树状数组模板题 C++ include include include include include include inclu
阅读全文
摘要:"题目链接" BFS模板 状态标记为四元组(x,y,key,t),二进制表示得到的钥匙 注意: == 的运算优先级比 & 高 一个位置可以有多把钥匙,而且钥匙可以在对应的门里面。 所以要先判断门可不可以进,在判断可不可以得到新钥匙。 C++ include include include inclu
阅读全文
摘要:"题目链接" 字典树模板题 测试模板 此题这里允许单词重复,(读错题WA好多
阅读全文