3624: [Apio2008]免费道路Time Limit:2 SecMemory Limit:128 MBSecSpecial JudgeSubmit:111Solved:49[Submit][Status]DescriptionInputOutputSample Input5 7 21 3 0...
题目大意:给定n个形如xi=ki*x_pi+bi mod p的同余方程组 支持修改操作和求解操作
确实好题 感谢此题作者 顺便吐槽一下作者的Splay不加空节点太蛋疼了0.0
将每个点i的父亲设为pi 我们将会得到一座基环树林 将环上的一条边拆掉,在边的起始节点新开个域special_father记录这条边(P.S:好浪费 但是没办法)
于是我们得到了一座森林 显然可以用LCT来维护 每个节...
分类:
其他好文 时间:
2014-10-25 09:20:13
阅读次数:
284
题目大意:给出一棵树,每一个节点有一个权值,一开始所有节点的权值都是0。有两种操作,0 x y代表以x为根节点的子树上所有点的权值增加y。1 k a1 b1 a2 b2 ……ak bk代表询问。一共有k条边( k
思路:子树修改,区间查询,很明显用树链剖分解决,树链剖分维护一个size域,那么x的子树的范围就是pos[x]到pos[x] + size[x] - 1这一段上,可以用线段树...
分类:
其他好文 时间:
2014-10-25 09:19:42
阅读次数:
136
题目大意及模拟退火题解:见 http://blog.csdn.net/popoqqq/article/details/39340759
这次用半平面交写了一遍……求出半平面交之后,枚举原图和半平面交的每个点,求出答案即可
#include
#include
#include
#include
#include
#define M 310
#define eps 1e-7
using name...
分类:
其他好文 时间:
2014-10-24 16:36:24
阅读次数:
224
题目大意:给出一个村庄的轮廓,在这个村庄里可以在任意的地方建一个瞭望塔,这个塔需要足够高,使得能够看得村庄的全貌。求这个瞭望塔的最小高度。
思路:对于村庄中的每一条边,瞭望塔为了看见它,必须要在这个直线左侧的半平面区域。这样的话为了满足所有的边的需求,做一次半平面交,瞭望塔的最高点必须在所有边的半平面交的区域内。
如下图样例。
所有边的半平面交区域就是上面的图形。设上面半平面的函...
分类:
其他好文 时间:
2014-10-24 16:30:31
阅读次数:
430
题目大意:给定一个a*b的矩阵,求一个n*n的子矩阵,使矩阵中的最大值与最小值之差最小
对于每行维护一个单调递减的队列,再弄一个竖着的队列,维护n个格子之内的最大值即可
两遍统计出最大值和最小值 然后得到ans即可
#include
#include
#include
#include
#define M 1010
using namespace std;
struct abcd{
pai...
分类:
其他好文 时间:
2014-10-24 16:29:26
阅读次数:
193
这题说的是给了 n 个数字 每个数值大于1 小于100000,n小于100000 ,找出满足下面要求的三人组有多少种 比如abc ( (ab)==(bc)==(ac) ==1 )||( (ab)!=1&&(bc)!=1&&(ac)!=1 )(()----表示gcd )计算出这样的三元组的个数。这样考...
分类:
其他好文 时间:
2014-10-24 16:25:45
阅读次数:
169
题目大意:给定一棵树,选定一棵子树中的一些点,薪水和不能超过m,求点的数量*子树根节点的领导能力的最大值
考虑对于每个节点,我们维护一种数据结构,在其中贪心寻找薪金小的雇佣。
每个节点暴力重建一定不行,我们考虑可并数据结构,每个节点将子节点的信息直接合并即可
可以用启发式合并的Treap,也可以用可并堆
今天特意去学了这玩应0.0 先写了左偏树 然后又写了下随机堆…… 后者速度上更快一些 ...
题目大意:求出1~N!中与M!互质的数的个数,保证N>M。
前言:最讨厌数学了。。。
思路:因为保证了n>m,所以n!一定是m!的倍数。如果找到了一个x使得gcd(x,m!)==1,那么gcd(x + m!,m!) == 1一定成立,gcd(x + k * m!,m!) == 1(k >= 1)也一定成立。x的个数就是φ(m!),那么总的个数就是φ(m!) * n! / m!。之后各种...
分类:
其他好文 时间:
2014-10-24 14:40:58
阅读次数:
167