摘要: 题意:给出n个字符串s,对每一个字符串可以给出m个位置ki,表示可以把字符串填到ki~ki+len(s)上,保证不会冲突,求最后符合条件的字典序最小字符串。 尝试用线段树写了一下 设置一个tag标记,如果区间整个都做过修改,tag为真,下次碰到这个区间后就直接跳过了 include include 阅读全文
posted @ 2017-07-17 22:28 />.<\ 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 一堆点中选三个点构成最大三角形。对于一个构成的三角形,过三角形顶点作与它的底边平行的线,要找面积最大的三角形,即最大的高,则顶点势必在点集构成的凸包上,所以从点集中选出构成面积最大的三角形的三个点一定来自点集构成的凸包。 include include include include include 阅读全文
posted @ 2017-07-10 22:18 />.<\ 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 对踵点对定义: 如果过凸包上的两个点可以画一对平行直线,使凸包上的所有点都夹在两条平行线之间或落在平行线上,那么这两个点叫做一对对踵点。最远点对必然属于对踵点集(结论。可能是构成凸包最长的对角线一定是一对对踵点,不明。。。) 旋转卡壳寻找对踵点的基本思路是: 1.找到凸包最高点与最低点,作水平的一对 阅读全文
posted @ 2017-07-10 22:13 />.<\ 阅读(216) 评论(0) 推荐(0) 编辑
摘要: Graham扫描法 提要 1.点线位置:利用向量叉积判断点在直线的某一侧 2.极角排序:选定边界上的点(一般为最左下点),按相对该点构成极角的大小排序 3.退化问题:出现多点在同一条直线上时,将距离加入排序 步骤 1.按最左下点进行极角排序 2.选择序列前两个依次入栈A,剩余则从序列末尾开始往前依次 阅读全文
posted @ 2017-07-06 19:19 />.<\ 阅读(928) 评论(0) 推荐(0) 编辑
摘要: 1.next_permutaton生成字典序全排列,要先将数组排序。 include include using namespace std; char c[3] = {'c','b','a'}; int main() { sort(c, c+3); do{ for(int i = 0; i inc 阅读全文
posted @ 2017-07-06 14:38 />.<\ 阅读(765) 评论(0) 推荐(0) 编辑
摘要: 差分约束 POJ 1201 题意:给出n个约束条件,每个约束条件为从整数区间 [ ai , bi ]中选出ci个数,问在满足所有约束条件的情况下,选出数的最少个数。 设S[x]表示0~x中总共选出了多少数 所以从给出的约束条件( ai , bi , ci )得到 S[ bi ] S[ ai 1 ] 阅读全文
posted @ 2017-07-05 20:57 />.<\ 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 差分约束 题意: 给出n代表一个序列的长度,给出m个约束条件(si , ni , oi , ki),若oi为gt,则序列从位置si~(si+ni)的和大于ki,若oi为lt,则和小于ki。问是否存在这样的序列使得约束条件成立。 转化为最短路问题: 当 oi 为 gt 时,S(si 1) S(si+n 阅读全文
posted @ 2017-07-05 11:10 />.<\ 阅读(92) 评论(0) 推荐(0) 编辑
摘要: Bellman Ford Bellman Ford算法基于边求解最短路,解决单源最短路问题,可以处理含负权边的图,判断是否存在负环。 图上的一条最短路径不超过V 1条边,每次遍历在前一次的基础上操作,是一个迭代松弛的过程。可以把由源点出发到各点的最短路径表示成一棵树,外层的每一次遍历操作就是将树的深 阅读全文
posted @ 2017-07-04 09:51 />.<\ 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 贪心原则 1、从源点出发寻找可达的点,更新dist值,标记为已访问 2、从更新过值得点中选最dist值最小且未被访问过的点,寻找可达的未访问点,更新dist值,当前点标记为已访问 3、重复第二步最多n 1次,就能得到源点到各点的最短距离 邻接矩阵实现 时间复杂度O(n^2),n为顶点个数 根据dij 阅读全文
posted @ 2017-07-02 15:27 />.<\ 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 利用单调栈寻找当前值在数组中的某段作为最小(大)值左可扩展的最大距离 时间复杂度为O(n)。遍历原数组,维护单调栈。以当前数在数组某一段中作为最小值为例: 先找向右可扩展的最远编号,按从前往后的顺序数组中的值进栈,如果新进值大于栈顶元素值,进栈。否则一直删除栈顶元素一直到当前编号可以入栈(大于栈顶元 阅读全文
posted @ 2017-07-02 14:40 />.<\ 阅读(238) 评论(0) 推荐(0) 编辑