2020年11月22日

匈牙利算法求解最大二分图匹配

摘要: 今天先贴出代码,后面有空了再来写分析。 代码: #include<iostream> #include<vector> using namespace std; vector<int>v[1005]; int match[1005]; int visit[1005]; int n1, n2, m; 阅读全文

posted @ 2020-11-22 17:25 小叶子曰 阅读(101) 评论(0) 推荐(0) 编辑

2020年11月19日

Dijkstra算法

摘要: 题目:luogu P4779 分析:实现Dijkstra算法,基于binary heap可以得到$O((m+n)\log{n})$的复杂度,基于Fibonacci heap可以得到$O(m+n\log{n})$的复杂度。这里我们采用优先队列priority_queue. 注意:Dijkstra算法只 阅读全文

posted @ 2020-11-19 14:35 小叶子曰 阅读(106) 评论(0) 推荐(0) 编辑

2020年11月18日

Dinic算法求解最大流问题

摘要: 题目:luogu 3376 分析:用Dinic算法求解最大流问题,复杂度为$O(mn^{2})$. 核心有两部分:利用BFS构造level graph, 然后用DFS找增广路径。代码如下,难点在于函数DFS(start, flow), 返回从结点start出发到$t$的最大流,并且满足流值不超过fl 阅读全文

posted @ 2020-11-18 10:02 小叶子曰 阅读(143) 评论(0) 推荐(0) 编辑

2020年10月26日

Edmonds-Karp算法求解最大流(POJ 1273)

摘要: 题目:POJ 1273 Drainage Ditches 分析:经典的最大流问题,这里我们采用Edmonds-Karp算法(复杂度为$O(m^{2}n)$). 核心操作为BFS以及残差网络$G_{f}$的更新。对于BFS,为了得到$O(m)$的复杂度,采用邻接表。为了得到augmenting pat 阅读全文

posted @ 2020-10-26 15:56 小叶子曰 阅读(88) 评论(0) 推荐(0) 编辑

2020年5月18日

矩阵幂求解骨牌覆盖数(SOJ 3021)

摘要: SOJ 3021: Quad Tiling 题意:给出$4\times N$的矩形以及尺寸为$2\times 1$的骨牌,求解该矩形能被骨牌覆盖的种数。 分析:起初我自己一直尝试推导出一个递推式,但是一直没有成功。后来看了网上别人给的递推式:$f(n)=f(n-1)+5*f(n-2)+f(n-3)- 阅读全文

posted @ 2020-05-18 21:59 小叶子曰 阅读(197) 评论(0) 推荐(0) 编辑

矩阵幂和(SOJ 2919)

摘要: SOJ 2919:Matrix Power Series 题意:计算$(\sum_{i=1}^{k}\mathbf{A}^{i})\%m$. 分析:$f_{k+1}=\mathbf{A}+\mathbf{A}^{2}+\cdots+\mathbf{A}^{k+1}=\mathbf{A}+\mathb 阅读全文

posted @ 2020-05-18 21:14 小叶子曰 阅读(150) 评论(0) 推荐(0) 编辑

2019年3月29日

能被一个整数整除的二进制序列个数(SOJ 2009)

摘要: 2009: Zeros and Ones 问题:给出一个$N$位($N\le64$且为偶数)的二进制数并且没有前导$0$,且$0$和$1$的个数都是$N/2$.给出另一个整数$K$,求解满足上述条件并且能被$K$整除的二进制数的个数。 分析:动态规划。定义$dp[i][j][k]$为前$i$位中有$ 阅读全文

posted @ 2019-03-29 19:02 小叶子曰 阅读(210) 评论(0) 推荐(0) 编辑

2019年3月28日

区间动态规划-DFS种类数(SOJ 2469)

摘要: 2469: Exploring Pyramids 问题:给出一棵树我们可以写出它的深搜结果,现在给出深搜结果字符串$S$求解对应树的种类数。 例子:深搜结果:$ABABABA$,对应的树(根结点在底层)有$5$个。 分析:应用区间动态规划,定义$dp[i][j]$为$S[i..j]$对应的树的个数, 阅读全文

posted @ 2019-03-28 06:51 小叶子曰 阅读(185) 评论(0) 推荐(0) 编辑

2019年3月25日

快速幂算法(SOJ 4454)

摘要: SOJ 4454: 写作业 问题:给出递推式$f_{1}=2$, $f_{2}=2$, $f_{n}=f_{n-1}+3f_{n-2}+1$, 求解$f_{n}\%1000000007$. 分析:类似于求解斐波那契数(参考这里),利用矩阵的快速幂算法,关键是写出矩阵形式。下面是一种最自然的方式, $ 阅读全文

posted @ 2019-03-25 19:04 小叶子曰 阅读(176) 评论(0) 推荐(0) 编辑

2019年3月24日

快速幂算法(SOJ 2984)

摘要: SOJ 2984: Fibonacci 问题:给出一个非负整数$n$,输出第$n$个斐波那契数$F_{n}$对$10000$取模的结果。 分析:利用最直接的方法(从$F_{0},F_{1}$开始迭代)求$F_{n}$的时间复杂度为$O(n)$.如果要求出所有的$F_{n}$,这种方法已经是最优的了, 阅读全文

posted @ 2019-03-24 14:40 小叶子曰 阅读(181) 评论(0) 推荐(0) 编辑

导航