09 2018 档案
摘要:链接:http://poj.org/problem?id=2114 题意: 求树上距离为k的点对数量; 思路: 点分治。。 实现代码:
阅读全文
摘要:链接:http://acm.hdu.edu.cn/showproblem.php?pid=6393 思路:n个点,n条边,也就是基环树。。因为只有一个环,我们可以把这个环断开,建一个新的点n+1与之相连,然后就按照树链剖分求边权的方法分类讨论下,过不过这条被分开的边,一共有三种情况取值最小的。 实现
阅读全文
摘要:题目链接:https://nanti.jisuanke.com/t/31714 题意:给你一棵树,初始全为0,有四种操作: 1.u-v乘x 2.u-v加x 3. u-v取反 4.询问u-v的和 思路: 除去第三个操作就是很简单的树链剖分+线段树多重标记下放,所以我们只要考虑怎么维护第三个操作就好了,
阅读全文
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4897 题意: 给你一棵树,一开始每条边都是白色,有三种操作: 1.将 u - v路径上的边转换颜色 2.将 u - v路径上相邻的边转换颜色 3.求 u - v 路径上黑色边的数量 思路: 好变态的一
阅读全文
摘要:题目链接:https://nanti.jisuanke.com/t/31451 题意: 给你一颗树,树上各点有初始权值,你有两种操作: 1. 给树中深度为l的点全部+x,(根节点为1,深度为0) 2.求出以x为根的子树权值和 思路: 因为第一个操作是对一整层的树节点+x,那么我们可以很容易的标记每一
阅读全文
摘要:链接:http://codeforces.com/contest/484/problem/E 题意: 给你n个数的,每个数代表高度; 再给出m个询问,每次询问[l,r]区间内连续w个数的最大的最小值; 思路: 因为查询的到的值一定是输入的其中一个,那么我们可以二分答案,判断二分得到的答案是否符合,那
阅读全文
摘要:题目链接: 题意: n个操作,有两种操作: E p c 在序号为p的队列尾部插入c得到新的队列,序号为i D p 查询并删除序号为p的队列顶部的元素,得到序号为i的新队列 思路: 需要查询历史版本,我们可以用将这些操作都更新在主席树上,这两个操作可以等价为更新一个点,查询一个点,尾部和顶部的元素我们
阅读全文
摘要:链接: http://acm.hdu.edu.cn/showproblem.php?pid=4348 题意: 4种操作: C l r c 区间[l,r]加c,时间+1 Q l r 询问当前时间区间[l,r]的和 H l r c 询问在时间t时,区间[l,r]的和 B x 回到时间x 思路: 涉及历史
阅读全文
摘要:题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4552 题意: 给你一个1-n的全排列,m次操作,操作由两种:1.将[l,r]升序排序,2.将[l,r]降序排列 最后给你一个点p,输出这个点的数 思路: 因为这道题只有一个询问,只需要知道
阅读全文
摘要:链接:https://nanti.jisuanke.com/t/30996 题意:很简单,懒得讲了 思路:我们可以直接用线段树求出区间最左边小于某个数的数,线段树存1-n房间的灯数,维护区间最小值,查询的时候优先向左走就好了, 一个房间满了我们就用线段树将这个房间的值更新为inf,然后模拟下就好了。
阅读全文