摘要: 一般的树形DP都是满足N个点N-1条边的数。可是有一类问题是N个点N条边,这样一定会有环,这样的图就叫基环树。 对于这类题,我们可以先dfs一次,找出环,然后把环上的一条边删除。那么图就能变成树,套用树规很容易解决。 ​ 假设将要删去的环上的边为E,边上两端点为u,v。然后分别以u和v为树根做一次D 阅读全文
posted @ 2017-12-25 19:18 wdvxdr 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 这是一个计算几何入门的教程。 与计算几何密切相关的就是坐标系,坐标系上的点可以用下面数据结构实现。 向量也是经常需要的,由于和点所需储存的信息相同,可以直接定义为别名。 由于需要使用大量加减乘除,我们可以重载运算符达到很好的使用效果。 我们也可以用STL的虚数类来实现点和向量。 这样我们就可以直接使 阅读全文
posted @ 2017-12-24 21:36 wdvxdr 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 我们知道,求逆序对最典型的方法就是归并排序,但是还有一种方法就是树状数组。假如你理解了树状数组,树状数组求逆序对相比归并排序排序要更好理解一些,而且树状数组的代码量也要少一些。 我们先看一下逆序对是什么吧。 逆序对就是序列a中ai>aj且i<j的有序对。 根据上面的定义我们很快的就可以写出O(n^2 阅读全文
posted @ 2017-08-07 18:43 wdvxdr 阅读(3416) 评论(4) 推荐(5) 编辑
摘要: 题目描述 某乡有n个村庄(1<n<20),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0<s<1000)是已知的,且A村到B村与B村到A村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为1,他不知道选择什么样的路线才能使所走的路程最短。请 阅读全文
posted @ 2017-07-29 09:50 wdvxdr 阅读(997) 评论(0) 推荐(1) 编辑
摘要: 原文地址:http://www.cnblogs.com/qscqesze/p/5243088.html “问题:众所周知772002很喜欢马尾,所以他决定画几幅马尾送给他的女朋友。 772002会画m种马尾,772002还有n张纸,n张纸分别编号1到n,每张纸上只能画一种马尾。 然而772002的女 阅读全文
posted @ 2017-07-27 16:05 wdvxdr 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://www.cnblogs.com/qscqesze/p/5239835.html 现在游戏开始! “切,又是无聊的一周。”沈柯倚靠在墙边,不屑的说道。 “以生存为赌注,拼上性命寻找出路什么的,我才不会怕呢。”廖奇握紧拳头,自信地说道。 ...... “啊,为什么,为什么,游戏为 阅读全文
posted @ 2017-07-27 16:03 wdvxdr 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 上一讲,我们学会了线段树,于是我们就愉(hua)快(ji)地可以暴(da)虐(lian)各大OJ的线段树模板题了。 于是我们就很愉快的打开了某谷oj的模板题。。。 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 看到这道题我们便很愉快的打上了线段 阅读全文
posted @ 2017-07-26 16:11 wdvxdr 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 最近突发奇想,到B站上看qscqesze神犇的每周算法讲堂,于是便学习了分块这个算法。 分块是一个很暴力的算法,按照某大神的说法,一般的区间问题都可以用他来解决,没有100分也有80分(一般会有80分,运气好有100分)。 分块是一个很暴力的算法,它可以完成几乎所有区间更新和区间查询问题,但效率相对 阅读全文
posted @ 2017-07-26 10:37 wdvxdr 阅读(3281) 评论(1) 推荐(0) 编辑
摘要: 接触线段树前我们先看一道比较经典的题目。 HDU 1166 敌兵布阵 这道题要求我们对一个区间内的单个值进行修改,并查询一段区间的和。 对于修改,我们很容易暴力的修改,复杂度为O(1),但查询的复杂度就变成了O(n),总复杂度为O(n*m),由于n和m都很大,所以这样肯定会超时的。 对于区间和我们常 阅读全文
posted @ 2017-07-26 10:34 wdvxdr 阅读(348) 评论(0) 推荐(0) 编辑