10 2018 档案
摘要:sol:不难吧,首先假设所有的狮子会一口气吃到底,(只剩一只), #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N=100005,inf=2e9+7; int n,a[
阅读全文
摘要:sol: 原题 CF444E 引理:考虑把xi像size一样记录出某个子树的大小,如果这个子树的大小大于除这个子树外的节点数,那这条边就可以满足条件。 但是不能用整个树来做判断,可以把他们看成一块块的,首先对每条边按边权排序,然后用并查集把点并起来,顺便把sz合起来,顺便同时判断是否满足 sol:树
阅读全文
摘要:题面 sol:说了是线段树优化建图的模板。。。 就是把一整个区间的点连到一个点上,然后用那个点来连需要连一整个区间的点就可以了,就把边的条数优化成n*log(n)了 #include <queue> #include <cstdio> #include <iostream> using namesp
阅读全文
摘要:题面 大意:给出n个弹弓,可以用ti的时间把xi位置运到yi,在给出m组询问,求xj到yj最小时间。 sol:首先如果不用弹弓,时间应为abs(xj-yj)。否则时间就是abs(xi-xj)+abs(yi-yj)+ti。这就需要拆开绝对值用线段树来维护了。大力枚举四种情况,建四次线段树,就可以过了。
阅读全文
摘要:题面 大意:让你把两个n的排列做匹配,连线不想交,而且匹配的数字的差<=4,求最大匹配数 sol:(参考了kczno1的题解)对于第一个排列从左往右枚举,用树状数组维护到达另一个序列第i个数字的最大值。 #include <cstdio> #include <algorithm> using nam
阅读全文
摘要:T1大意:给一个序列,每次修改一个数,求每次修改后的众数 sol:数据结构sb题,离散完之后套一个权值线段树就过了 T2大意:给出一个k维的空间,在空间中有n个点,求任意两个点的最大曼哈顿距离 sol:因为abs比较难处理,所以拆开绝对值:考虑直接拆开原来如果是abs(x1-x2),拆成x1-x2,
阅读全文
摘要:这么多模拟赛都没整理,能整理一天算一天吧qaq sol:应该不难吧,分别对横坐标和纵坐标取差的绝对值,易知:如果互质就可以看到,否则就不行。然后出题人很毒瘤要用unsigned long long。 sol:这就是大模拟啊,我代码在全班算很短了,我就简单说说模拟的方法,也没什么:我发现绝对值小于1e
阅读全文
摘要:题面链接 get到新技能当然要来记录一下辣 题意:给一棵树,每个点有一个权值,要求同一个父亲的儿子的权值全部相同,父亲的取值必须是所有儿子的权值和,求最少的修改数量 sol:自己瞎鸡巴yy一下可以发现,如果根节点(当做1来算)权值确定,整棵树所有点的权值也都确定了,再一想,其实只要有一个点的权值确定
阅读全文
摘要:题面链接 sol:差分约束系统裸题,根据a+b<=c建个图跑个最短路就没了。。。
阅读全文
摘要:题面链接 一句话题意:给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个。 我:似乎并不好做啊。。。看了题解后大雾。。。 sol:考虑树上差分,对于一个点,在他那个位置++,再找到最远的一个点使得该点与当前点的距离小于等于l,在找到的那个点的父亲处--,至于实现倍增好像可以
阅读全文
摘要:CF1045B 自己瞎鸡巴yy了一下,可知若一个数X不能被表示出来,那么X所有的表示方法都在A集合中,如a1,a2,a3······an-1,an-2中若a1+ai不能被表示出来,那么如果a1到ai是回文(这里回文是指a2-a1=an-an-1,a3-a2=an-1-an-1大概懂了就可以),这样用
阅读全文
摘要:题面 这题还挺水的,把那个式子稍微变形一下就可以的到xi-wi>=xj+wj,易知:若把每个点看做一条线段,左端点是xi-wi,右端点是xi+wi,就只要求最多的不重叠的线段数就可以了,然后就是乱搞了
阅读全文