没来由地…突然很想记录一下…(XZ 老师的算法课)
第一次上机作业(09.09 - 09.23):http://algorithm.openjudge.cn/hw201901/
第二次上机作业(10.14 - 10.28):http://algorithm.openjudge.cn/hw201902/
第三次上机作业(10.28 - 11.18):http://algorithm.openjudge.cn/hw201903/
第四次上机作业(11.18 - 12.16):http://algorithm.openjudge.cn/201904/
第一次上机作业代码
A. 石头剪刀布:模拟
1 |
|
B: 汉诺塔问题(Hanoi):递归
1 |
|
C: 二维数组右上左下遍历:模拟
1 |
|
另一个做法:
1 |
|
D: 由中根序列和后根序列重建二叉树:递归
1 |
|
E: 文本二叉树:先建树/然后遍历/关键是建树
1 |
|
更“正统”的做法是这样…用二叉树的方法来做二叉树的题…故称正统
1 |
|
F: 棋盘问题:DFS 计数
1 |
|
第二次上机作业代码
A: 仙岛求药:最最 naive 的 BFS 搜索
1 |
|
B: Butterfly:染色判断二分图
1 |
|
C: 区间合并:For
一遍判断是否有不相交
1 |
|
D: Radar Installation:贪心
1 |
|
E: The Unique MST:判断 mst 唯一性/求次小并与之比较即可
Kruskal 求出 mst 并存起来,枚举 mst 中的边,将其删掉并在剩余图中求 mst,这些 mst 中最小者即为次小生成树。
1 |
|
F: Sorting It All Out:拓扑排序并判断排序是否唯一
1 |
|
第三次上机作业代码
A: 求逆序对数:线段树
1 |
|
B: Raid:暴力求解最近点对
1 |
|
C: 公共子序列:LCS 动态规划
1 |
|
D: 股票买卖:动态规划
1 |
|
E: 最大子矩阵:动态规划
1 |
|
F: Multiplication Puzzle:类似背包
1 |
|
第四次上机作业代码
A: Currency Exchange:BellmanFord 判断负环
1 |
|
B: Shopping Offers:动态规划
1 |
|
C: The Perfect Stall:二分图最大匹配
1 |
|
D: Drainage Ditches:最小割
1 |
|
E: Dual Core CPU:最小割
1 |
|
F: PIGS:最大流
1 |
|