DYT_B的博客

2018 New Start

欢迎使用CSDN-markdown编辑器.

欢迎使用Markdown编辑器写博客(莫名其妙发出去的的第一篇blog) 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离...

2017-08-02 10:51:12

阅读数:746

评论数:0

【施工中...】算法学习:快速傅里叶变换(FFT)

前置知识: 1.多项式: 形如: f(x)=∑0n−1ai⋅xif(x)=\sum_{0}^{n-1}ai\cdot x^if(x)=0∑n−1​ai⋅xi 多项式表示法: 系数表示法: 就是上式的写法 点值表示法: 在f(x)上取n个点,就能唯一确定的表示出这个多项式。 证明如...

2018-12-03 20:57:40

阅读数:33

评论数:0

CDQ分治模板:HDU5618 Jam's problem again

题目描述:戳这里 题解: 这是一道CDQ分治的模板。 我们想要求三维的“正序对”的数量。那么可以通过牌序第一维,然后对后两位使用一些数据结构来维护。 但是这样很难维护,而CDQ分治就是解决这样的问题的一个得力工具。 CDQ的思想大概就和归并排序一样。 我们先以x,y,z分别为第1,2,...

2018-11-18 19:44:02

阅读数:42

评论数:0

51nod 1806 wangyurzee的树

题目描述:戳这里 题解:

2018-10-29 18:42:21

阅读数:22

评论数:0

51nod 1681 公共祖先

题目描述:戳这里 题解: 这个题目有一个非常好的技巧。我们要求的其实是某一个点在两颗树中的子树中同时含有的点的数量。我们发现这个东西很难求,因为这个东西在两个子树中都是散乱无序的。那么我们如果把一颗子树中的量变得有一定的关系可循,那么接下来只需要关心另一颗树就好了。那么我们不妨把第一颗树重新标一个...

2018-10-28 19:02:58

阅读数:9

评论数:0

SPOJ 10628 /LuoguSP10628 COT - Count on a tree

题目描述:戳这里 题解: 这题是主席树上树(???) 我们发现对于一个点,我们可以维护从它到根的权值线段树,那么对于一个点对x,y,我们只需要求出它们的lca z,以及z的父节点,那么就可以容斥一下,sumx+sumy−sumz−sumfazsumx+sumy-sumz-sum fazsumx+s...

2018-10-28 15:37:43

阅读数:18

评论数:0

BZOJ 2286消耗战

题目描述:戳这里 题解: 这题就是虚树的板子题啦。 我们要求一些最小可以阻断给定k个点到根的路径的边权和。那么考虑没有询问的情况,可以直接用树形DP。我们先用倍增求出一个点到根的路径上的最小的边权x,然后对于一个选中的节点,肯定是求它的x作为一这个点为根的子树上的答案。而对于一个未被选中的点,就有...

2018-10-17 18:57:42

阅读数:23

评论数:0

51nod题解小集

1406:f[x]表示与x相与之后值为x的数的个数。转移就是删掉某一个二进制位上的1。但是如果先枚举当前的值,再枚举删掉那一位会产生重复(一个数删掉一个位上的1或者删掉另外一个位上的1最后都会转移到同时删掉这两个1的情况)。那么我们可以改一下循环的顺序,先枚举删掉的位,再枚举当前的数,就不会有重复...

2018-10-06 14:20:28

阅读数:47

评论数:0

KM算法模板

代码如下: #include<cstdio> #include<string> #include<cstring> using namespace std; c...

2018-09-05 14:33:41

阅读数:40

评论数:0

凸包算法:Graham模板

感觉这个算法比衍生版的Andrew算法优秀。 算法过程大致如下: 首先找到一个y坐标最小的点(y坐标相等就x最小)作为基准点,进行极角排序。这样能保证所有点到这个点的角度都在(-180,180]之间,就不用像Andrew一样维护上下凸壳了。 然后只要维护一下凸壳就好了(如果发现是凹的就退栈)...

2018-09-01 10:19:37

阅读数:35

评论数:0

HDU 5780 gcd

题目描述:戳这里 题解: 首先有一个结论:gcd(xa−1,xb−1)=xgcd(a,b)−1gcd(xa−1,xb−1)=xgcd(a,b)−1gcd(x^a-1,x^b-1)=x^{gcd(a,b)}-1 推导过程可以参考一下辗转相减法。 (xa−1,xb−1)=(xa−b,xb−1)...

2018-08-30 18:47:27

阅读数:21

评论数:0

最小费用最大流:Luogu P3381 【模板】最小费用最大流

题目描述:戳这里 题解: 最小费用最大流的套路基本上就是这样的: 1.求出当前残留网络之中s -> t的最短路 (spfa) 因为有可能会有负权边 2.答案+= dis[t] × totflow 3.在处理完了之后修正途径边的流量(正减反加) 4.循环1...

2018-08-27 08:51:09

阅读数:22

评论数:0

莫比乌斯容斥:Codeforces Round #251 (Div. 2)

题目描述:戳这里 题解: 这题是莫比乌斯函数的一个比较好的应用。 我们假设没有gcd为1这个限制条件,那么直接C(n-1,r-1)就行了 这样求出来的其实是大于等于gcd=1的方案总数。 而我们要求的其实是恰好gcd=1的方案数。 那么这就是容斥的典型应用。 但是我们容斥的其实是有g...

2018-08-10 08:22:45

阅读数:46

评论数:0

HDU4193 Least common multiple

题目描述:戳这里 题解: 这题中对于一个子集,它的最小公倍数一定是2max(a[i])∗3max(b[i])2max(a[i])∗3max(b[i])2^{max(a[i])}*3^{max(b[i])} 那么一个子集的LCM只取决于它之中a[i]最大的元素和b[i]最大的元素。 那么对于...

2018-08-07 22:33:44

阅读数:23

评论数:0

HDU4912 Paths on the tree

题目描述:戳这里 题解: 树上贪心。对于每一个路径,肯定是一个折线型的。那么我们找出两个端点的lca,然后按lca的深度排序,从深到浅,能加入就加入,否则就不加入。 证明可以口胡一下:我们会发现如果这个路径能加却不加,而是加一个深度更浅的路径,那么肯定肯定会使后面的点的限制更加紧,后面能加的...

2018-08-07 22:17:06

阅读数:21

评论数:0

Codeforces 236E div.2 Strictly Positive Matrix

题目描述: CF出了点小偏差,改日再补。。 简述: 给你一个矩阵,如果它的k次幂中的每一个元素都大于0,那么就输出YES,否则输出NO。 题解: 这题有一个比较巧妙的小转化。如果我们把n*n的矩阵转化成描述n个点的连通性的图,那么会有什么性质? 这样的话,矩阵的乘方不就是刷只和连通性有关的...

2018-08-07 18:51:13

阅读数:24

评论数:0

HDU 4358 - Boring counting

题目描述:戳这里 题解: 这是典型的树上查询和子树有关信息并且无修改的题目。 那么就可以直接DSU on Tree 或者 启发式合并就好啦。 我写的是启发式合并,每次记录一下当前点的当前枚举过的儿子的颜色集合,那么当前枚举儿子k,我们只要两个集合合并一下即可。但是要保证把小的并到大的,这样...

2018-08-07 14:44:19

阅读数:14

评论数:0

树链剖分:P3384 【模板】树链剖分

题目描述:戳这里 题解: 其实树剖的重点就在于轻重链,这篇文章写的很好 然而我线段树写得全是问题,改了半天2333 代码如下: #include<cstdio> #include<string> #i...

2018-08-06 09:33:41

阅读数:20

评论数:0

Codeforces Round #379 (Div. 2) E. Anton and Tree

题目描述:戳这里 题解: 这题还是比较妙的。 我们发现有这么多的同色块,块的大小又不一样,好像无从下手。 但是我们发现一个块最多只要改一次,那么我们可以把每一个块缩成一个点(dfs一下)就省去了很多麻烦。 缩完点之后,题目就变得简单了很多,一个黑点边上只有白点,白点边上只有黑点。这就可以...

2018-08-05 18:10:31

阅读数:22

评论数:0

主席树:LuoguP3834 【模板】可持久化线段树 1(主席树)

题目描述:戳这里 题解: 话说我去年好像学过主席树。。。 然后我就不会了,然后我就害怕的又学了一次。 主席树其实就是线段树的优化。 我们考虑这道模板题。 如果用暴力的方法做,肯定会Tle。 那么我们想一想能不能用线段树来优化一下。 先简单化一下题目,如果求的是1~m(m&a...

2018-08-05 16:52:31

阅读数:33

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭