上一页 1 ··· 4 5 6 7 8 9 下一页
摘要: 适用范围 最小生成树问题 思路 核心思想:贪心.对于一幅连通图,首先,先假设有一个只包含顶点v的数T,然后贪心选取T和其他点之间的最小权值的边,然后把它加入T,不断进行这个操作直到所有点的都在T里,这时T就是最小生成树.prim算法和dijkstra算法很相似,实现的时候也差不多,基础算法像dijk 阅读全文
posted @ 2019-04-14 17:31 VBL 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 适用范围 任意两点最短路(允许存在负边) 思路 核心思想:动态规划.设dp[k][i][j],表示i到j在前k个点的最短路,dp[0][i][j]表示i到j的最短路不经过任何点,于是dp[0][i][j]=cost[i][j].i到j的最短路在第k个点只有两种情况,如果i到j的最短路不经过k点,有d 阅读全文
posted @ 2019-04-11 13:37 VBL 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 适用范围 单源最短路 思路 核心思想:贪心.从第一个最短距离已经确定的点出发(起点),找到起点为最短距离确定的点的边,按边的权值从小到大通过这些边去更新这些边的终点(此过程可以用优先队列优化),从而不断确定点的最短距离,直到最后所有点的最短距离均确定.这里要说明一下,按原算法思路是无法跑负边的,因为 阅读全文
posted @ 2019-04-10 23:16 VBL 阅读(237) 评论(0) 推荐(0) 编辑
摘要: next数组 对于一个字符串,next[i]=k表示当前位置前面有k个字符(不包括全前缀)和开头k个字符一样,或者若当前位置匹配失败应该返回的下标处.kmp算法核心就是怎么求一个字符串的next数组. 模板 1 char s[MAX]; 2 int next[MAX]; 3 4 void kmp(i 阅读全文
posted @ 2019-04-08 22:37 VBL 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 概念 先讲一下离散化操作的概念,举个例子会比较好说明.对于一组数组比如a[5]=6,9,5,5,4.进行离散化操作后就变成3,4,2,2,1.也就是说当需要用到的信息与数的绝对大小无关而与相对大小有关的时候就可以用上离散化操作. 实现 实现离散化操作需要用到两个函数 unique函数 和 lower 阅读全文
posted @ 2019-04-08 20:31 VBL 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 数据结构图 eg:1-10的线段树(区间里面的数代表左右边界值,区间下面的数代表在tree数组中的下标) 基本功能实现思路及代码 0.基础结构体 1 struct N 2 { 3 int l,r,w; //左边界 右边界 区间维护值 4 int lazy; //懒值 5 }tree[4*n]; 注意 阅读全文
posted @ 2019-03-31 13:16 VBL 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 原题 原题链接 题目大意 题目可以抽象成一个图,给定一个无向连通图,问两点间的最短路径. 题目分析 该题是裸的最短路径问题,可以用来当作最短路径算法练习,这里主要讲一下dijkstra算法思路,先创建一个d[i]数组(初始化为inf),表示第i个点与起点的距离,从第s个点开始,先找出与s点连接的边, 阅读全文
posted @ 2019-03-16 10:18 VBL 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 原题 原题链接 题目大意 题目会给一个牛的有向图,A→B意味着A认为B流行,如果A→B,B→C,则A和B都认为C流行,要求求出这群牛中被所有牛认为流行的牛的数. 题目分析 这道题中会存在一些情况例如 A→B,B→C,C→A这种,就是A B C强连通,所以需要把这些强连通的点集压缩成一个点并进行拓扑排 阅读全文
posted @ 2019-03-08 19:57 VBL 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 原题 原题链接 题目大意 题目要求把i颗豆(0<=i<=m)放进n个洞里有多少种情况. 题目分析 这道题可以看作是在m颗豆里面按顺序插入n+1个板,就是把这m颗豆分成n+1堆,其中n堆是要放入洞中的,还有1堆是不放进洞中的.这时候情况有(m+1)(m+2)...(m+n+1),又因为这些板是相同的, 阅读全文
posted @ 2019-03-07 19:30 VBL 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 原题 原题链接 题目大意 给定数字N,要求计算A到B区间内与N互质的整数的个数。 题目分析 这道题可以用容斥定理来解,先求N的质因数,再筛掉AB区间种是N的质因数的倍数的那些数,剩下的数就是与N互质的数了.求解质因数可以从i=2开始枚举,到i*i<=N结束,只要N能被i整除,就把i加入到一个数组中, 阅读全文
posted @ 2019-03-07 18:40 VBL 阅读(146) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 下一页