随笔分类 - ACM-UVA/LA/SPOJ/bzoj/FZU
UVA 11297 线段树套线段树(二维线段树)
摘要:题目大意: 就是在二维的空间内进行单个的修改,或者进行整块矩形区域的最大最小值查询 二维线段树树,要注意的是第一维上不是叶子形成的第二维线段树和叶子形成的第二维线段树要 不同的处理方式,非叶子形成的线段树总是在自身的叶子处不能直接更新数据,而是要以一维下他的左右孩子对应的位置数据进行更新。
阅读全文
bzoj 3172 单词 ac自动机|后缀数组
摘要:题目大意:给定n个字符串连成了一篇文章,问每个字符串在这篇文章中出现的次数,可重复覆盖这里ac自动机和后缀数组都可以做当然后缀数组很容易就解决,但是相对时间消耗高这里就只讲ac自动机了将每个字符串放入ac自动机中,这里需要记录到达每个ac自动机上的节点出现这个状态有多少次而我们添加字符串进入的时候,...
阅读全文
bzoj 1005 1211 prufer序列总结
摘要:两道题目大意都是根据每个点的度数来构建一棵无根树来确定有多少种构建方法这里构建无根树要用到的是prufer序列的知识先很无耻地抄袭了一段百度百科中的prufer序列的知识:将树转化成Prufer数列的方法一种生成Prufer序列的方法是迭代删点,直到原图仅剩两个点。对于一棵顶点已经经过编号的树T,顶...
阅读全文
bzoj1211: prufer序列 | [HNOI2004]树的计数
摘要:题目大意:告诉你树上每个节点的度数,让你构建出这样一棵树,问能够构建出树的种树这里注意数量为0的情况,就是当 n=1时,节点度数>0n>1时,所有节点度数相加-n!=n-2可以通过通过除了根,必然有n-1个节点作为上一个节点的儿子来理解然后通过学习prufer序列可知每一颗树都能够建成唯一的序列,这...
阅读全文
SGU 140 扩展欧几里得
摘要:题目大意:给定序列a[] , p , b希望找到一个序列 x[] , 使a1*x1 + a2*x2 + ... + an*xn = b (mod p)这里很容易写成a1*x1 + a2*x2 + ... + an*xn + yp = b->a1*x1 + a2*x2 + ... + an*xn + ...
阅读全文
bzoj 2154 莫比乌斯反演求lcm的和
摘要:题目大意:表格中每一个位置(i,j)填的值是lcm(i,j) , 求n*m的表格值有多大论文贾志鹏线性筛中过程讲的很好最后的逆元我利用的是欧拉定理求解的我这个最后线性扫了一遍,勉强过了,效率不是很高。。。 1 /*bzoj 2154*/ 2 #include 3 4 using namespac...
阅读全文
bzoj 3529 数表 莫比乌斯反演+树状数组
摘要:题目大意:有一张N×m的数表,其第i行第j列(1 2 3 using namespace std; 4 #define N 100000 5 #define ll long long 6 #define lowbit(x) x&(-x) 7 typedef pair pii; 8 ...
阅读全文
bzoj 2820 YY的GCD 莫比乌斯反演
摘要:题目大意:给定N, M,求1 3 4 using namespace std; 5 #define ll long long 6 #define N 10000000 7 int mu[N+5] , prime[N+5] , tot , f[N+5] , sum[N+5]; 8 bool chec...
阅读全文
bzoj 2301 莫比乌斯反演
摘要:对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。这里题目意思很明显对于要求的f[n] = sigma (a≤x≤b) sigma(c≤y≤d) [gcd(x,y)=k] =sigma (1≤x≤b)s...
阅读全文
bzoj 2440 简单莫比乌斯反演
摘要:题目大意:找第k个非平方数,平方数定义为一个数存在一个因子可以用某个数的平方来表示这里首先需要考虑到二分才可以接下来做二分去查找[1 , x]区间内非平方数的个数,后面就是简单的莫比乌斯反演了容斥原理的思想,首先考虑所有数都属于非平方数 那么就是x然后对于每一个平方数都要减去,但是这里应该只考虑质数...
阅读全文
SPOJ COT2 树上找路径上不同值的个数
摘要:题目大意给出多个询问u , v , 求出u-v路径上点权值不同的个数开始做的是COT1,用主席树写过了,理解起来不难很高兴的跑去做第二道,完全跟普通数组区间求k个不同有很大区别,完全没思路膜拜http://www.cnblogs.com/oyking/p/4265823.html这里利用莫队思想来做...
阅读全文
SPOJ 10628 求树上的某条路径上第k小的点
摘要:第k小,很容易会想到用主席树来解决这里简单想一下树的转移过程因为本身无向图形成一棵树,那么我们总以1为根,那么之后连下去的边对应的点建立的线段树总是在父亲节点对应的树上加上一个当前点对应位置出现的值这跟在普通序列上由前一个转移到下一个是差不多的那么每个点上生成的线段树记录的就是当前节点到根节点的总信...
阅读全文
SPOJ QTREE 树链剖分
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std; 10 #define N 10010 11...
阅读全文
FZU 2082 过路费
摘要:树链剖分模板题 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define N 50010 7 #define ls o>1 10 #define ll long long 11 in...
阅读全文
bzoj 1036 Tree Count
摘要:题目大意:给出一棵树,每个点有一个权值,要求三种操作:1.修改某个点的权值,2.询问x到y路径上各点的权值最大值,3.询问x到y路径上各点的权值之和。 1 #include 2 #include 3 #include 4 #include 5 using namespace std...
阅读全文
bzoj 3687 bitset的运用
摘要:题目大意:小呆开始研究集合论了,他提出了关于一个数集四个问题:1. 子集的异或和的算术和。2. 子集的异或和的异或和。3. 子集的算术和的算术和。4. 子集的算术和的异或和。目前为止,小呆已经解决了前三个问题,还剩下最后一个问题还没有解决,他决定把这个问题交给你,未来的集训队队员来实现。【输入格式】...
阅读全文
bzoj 2595 斯坦纳树
摘要:题目大意:选定一些格子保证景点对应的格子通过这些格子连通,保证选定的所有格子对应的权值和最小这是相当于理解为将所有点形成的最小生成树这里点的个数很少,所以可以对每一个点进行状态压缩f[st][i]表示连通性至少为st,且经过i点的最小距离方程1.f[st][i] = Min{f[s][i] + f[...
阅读全文
URAL 1519 基础插头DP
摘要:题目大意:给定一个图,一部分点'*'作为障碍物,求经过所有非障碍点的汉密尔顿回路有多少条基础的插头DP题目,对于陈丹琦的论文来说我觉得http://blog.sina.com.cn/s/blog_51cea4040100gmky.html这个博客写的更容易理解,不过好像这篇博客里的代码有问题,反正是...
阅读全文
UVA 10294 等价类计数
摘要:题目大意:项链和手镯都是若干珠子穿成的环形首饰,手镯可以旋转和翻转,但项链只能旋转,给n个珠子,t种颜色,求最后能形成的手镯,项链的数量这里根据等价类计数的polya定理求解对于一个置换f,若一种方案经过置换后不改变,那么不改变的点的个数记作C(f)统计所有的C(f) , 相加之后求和除以置换的种数...
阅读全文
LA 5061 LCA tarjan 算法
摘要:题目大意:给定所有点的权值都为0,给定一棵树以后,每次询问都要求给定两点 x , y 和一个权值w,要求x,y路径上所有点权值加上w,最后求出每一个节点的值这里因为查询和点都特别多,所以希望能最后一次性更新节点的值我们可以这么考虑,每次询问中找到x,y的最近公共祖先,那么我们将val[x] +=w ...
阅读全文
浙公网安备 33010602011771号