DYT_B的博客

2018 New Start

排序:
默认
按更新时间
按访问量

欢迎使用CSDN-markdown编辑器.

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

2017-08-02 10:51:12

阅读数:705

评论数:0

51nod题解小集

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

2018-10-06 14:20:28

阅读数:28

评论数:0

KM算法模板

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

2018-09-05 14:33:41

阅读数:23

评论数:0

凸包算法:Graham模板

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

2018-09-01 10:19:37

阅读数:30

评论数: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

阅读数:20

评论数:0

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

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

2018-08-27 08:51:09

阅读数:17

评论数:0

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

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

2018-08-10 08:22:45

阅读数:44

评论数: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

阅读数:15

评论数:0

HDU4912 Paths on the tree

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

2018-08-07 22:17:06

阅读数:18

评论数: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

阅读数:12

评论数:0

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

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

2018-08-06 09:33:41

阅读数:22

评论数:0

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

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

2018-08-05 18:10:31

阅读数:20

评论数:0

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

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

2018-08-05 16:52:31

阅读数:26

评论数:0

割边:ZOJ2588:Burning Bridges

题目描述:戳这里 题解: ZOJ绝对有毒。。。格式要求令人害怕。 这题是割边的裸题。 因为在无向图中,刷出DFS序后只有返祖边(yy一下应该就知道为什么了)。那么一条边是割边一定要满足它的子树中所有点的返祖边都不会跨过它。 那么这个条件很容易用树上差分来实现。但是考虑到要和割点以及强连通...

2018-08-03 08:14:28

阅读数:21

评论数:0

平面最近点对:HDU1007:Quoit Design

题目描述:戳这里 题解: 这题是平面最近点对的裸题。 感觉平面最近点对还是比较玄妙的。 这个算法用到的是分治的思想,先分为左右两边 ,然后合并其。 那么就具体来讲讲吧。 首先我们先按照x坐标来排序n个点。 然后就是求解过程,根据我前面说的,对于一段区间[L…R],我们求出它的中点mi...

2018-08-02 19:03:11

阅读数:40

评论数:2

ZOJ:3649 Social Net

题目描述:戳这里 题解: 这题绝对有毒。。。 第一眼看到这题的题面感觉应该比较简单,只要倍增维护一下最大值和最小值就好了??? 然而码了70+行之后发现题目读错了。有一个限制条件,两个点x,y是“有向”的,x到y的路径序列中,最大值的位置编号一定要大于最小值的位置编号。。。 这样就比较麻...

2018-08-02 08:28:01

阅读数:59

评论数:0

BZOJ1977: [BeiJing2010组队]次小生成树 Tree

题目描述:戳这里 题解: 求非严格次小生成树是比较简单的,但是严格的就有点(超级)麻烦了。 我们可以考虑一下用克鲁斯卡尔做最小生成树的过程,一定是找了一些最小的边来构造。 我们假设造好了最小生成树,那么任意一条没有被选择过的边加入树都会在树上形成一个环。 则我们只需要考虑取出当前环上权值...

2018-07-29 14:07:28

阅读数:26

评论数:0

BZOJ3124: [Sdoi2013]直径

题目描述:戳这里 题解:: 这题是一道比较经典的和直径有关的题目。我们首先肯定要刷出直径。 有一个关于直径的结论,如果有多条直径,那么它们相交的部分肯定是连续的一段(yy一下应该能想出来)。 那么在我们刷出来的直径中,为什么会出现一条边没有被所有直径经过呢,那么肯定是从直径上的某一个在它之...

2018-07-29 08:59:24

阅读数:18

评论数:0

Manacher算法:Luogu P3805 【模板】manacher算法

题目描述:戳这里 题解:: 以前听说过,但是没有学过manacher算法,现在发现其实还挺简单的。。。 manacher算法可以用来解决最长回文串的长度这一类的问题。 讲这个算法之前,我们首先要解决一个重要的问题:回文串分为奇数长度和偶数长度。 那么我们可以用一个巧妙(暴力)的方法,每两...

2018-07-28 10:06:49

阅读数:24

评论数:0

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