08 2015 档案
摘要:多个源点,虚拟成一个超点题意:有很多岛,有些岛上有电站,岛与岛之间铺光缆可以互相通电。求使全部岛通电的最小代价。本来是很朴素的最小生成树,但是不止一个岛有电站就使得这个问题变成多个源点的问题处理是重新构造图,将所有电站当作一个点,边(电站,无电岛)最小生成树可以有超点,那最短路可不可以呢?联想上一道...
阅读全文
摘要:求从第0层(只有一个起点)到顶层(有多个点)的最短路特殊样例:220 // 这个节点和根不连通1 2 0*21 1 02 3 0 answer 5这道题可以先建图再求最短路,也可以用dpdp : dp[i][j]表示到达第i层第j个节点的最短距离,第i层只能从i-1层爬上来,状态转移方...
阅读全文
摘要:题型:无向图,删边加边有代价,问最小生成树同时代价最小题意:处理:DFS找连通分支(无向图,一定是强连通分支),删去环边,再将再连通分支树的根节点连接。bug ; 在go的意义上混淆过,分析如下数据结构:const int add_e = 2;const int delete_e = 3;const...
阅读全文
摘要:二叉排序树的遍历的转换成 .可以建树。但是没必要。上课的时候无聊想了下。 前序遍历:根左右 中序遍历:左根右 后序遍历:左右根 给定一个前序遍历(后序也可以)可以知道最左边的肯定是根。因为左子树<根<右子树,所以从左到右扫描,如果遇到比根大的,就是右子树的元素了。于是可以分成三部分:...
阅读全文
摘要:因为是图论专题,所以最初想到的是最短路,但是图怎么存?图的最短路需要保存可以经过的点(n*m个点10^6),肯定爆了,不可能只保存交叉点。果断放弃。考虑用DP 设当前在(i+1,j+1)表示到达这个点的最短距离。可以到达这里的点有三个。则(i+1,j+1)=min( (i+1,j)+1,(i,j+1...
阅读全文
摘要:林瀚老师的算法课(小学期讲图论)讲得很棒 :)WEEK 11、 G(V,E) 表示方法临接矩阵 在Warshall算法里喜欢用这个临界表 vector (可变长,我最熟悉这种,方便),链表(学数据结构我喜欢把G和T(tree)的连接点放在这儿,边集合 刚刚想到以前做过这种题,用边集合吧是DP...
阅读全文