品牌网是什么网站,国内网络推广平台,企业为什么要建设网站,注册公司网站怎么做一、多段图问题
问题描述#xff1a;设图G(V, E)是一个带权有向图#xff0c;如果把顶点集合V划分成k个互不相交的子集Vi (2≤k≤n, 1≤i≤k)#xff0c;使得对于E中的任何一条边(u, v)#xff0c;必有u∈Vi#xff0c;v∈Vim (1≤i≤k, 1#xff1c;im≤k)#xff0c;…一、多段图问题
问题描述设图G(V, E)是一个带权有向图如果把顶点集合V划分成k个互不相交的子集Vi (2≤k≤n, 1≤i≤k)使得对于E中的任何一条边(u, v)必有u∈Viv∈Vim (1≤i≤k, 1im≤k)则称图G为多段图称s∈V1为源点t∈Vk为终点。多段图的最短路径问题求从源点到终点的最小代价路径。 二、抽象分析
设Cu-v表示多段图的有向边u, v上的权值将从源点s到终点t的最短路径长度记为d(s, t)考虑原问题的部分解d(s, v)显然有下式成立
d(s, v) Cs-v s, v∈E
d(s, v) min{d(s, u) Cu-v} u, v∈E
1.循环变量j从1~n-1重复下述操作执行填表工作 1.1考察顶点j的所有入边对于边i,j∈E,执行下述操作 1.1.1cost[j]min{cost[i]c[i][j]} 1.1.2path[j]使cost[i]c[i][j]最小的i; 1.2 j;
2.输出最短路径长度cost[n-1]
3.循环变量ipath[n-1].循环直到path[i]0,输出最短路径经过的顶点 3.1 输出path[i]; 3.2 ipath[i]
三、例题具体分析
首先求解初始子问题可直接获得
d(0, 1)c014(0→1)
d(0, 2)c022(0→2)
d(0, 3)c033(0→3)
再求解下一个阶段的子问题有
d(0, 4)min{d(0, 1)c14, d(0, 2)c24}min{49, 26}8(2→4)
d(0, 5)min{d(0, 1)c15, d(0, 2)c25, d(0, 3)c35}min{48, 27, 34} 7(3→5)
d(0, 6)min{d(0, 2)c26, d(0, 3)c36}min{28, 37}10(2→6)
再求解下一个阶段的子问题有
d(0, 7)min{d(0, 4)c47, d(0, 5)c57, d(0, 6)c67}min{85, 78, 106} 13(4→7)
d(0, 8)min{d(0, 4)c48, d(0, 5)c58, d(0, 6)c68}min{86, 76, 105} 13(5→8)
直到最后一个阶段有
d(0, 9)min{d(0, 7)c79, d(0, 8)c89}min{137, 133}16(8→9)
再将状态进行回溯得到最短路径0→3→5→8→9最短路径长度16。
附输入
10 18
0 1 4
0 2 2
0 3 3
1 4 9
1 5 8
2 4 6
2 5 7
2 6 8
3 5 4
3 6 7
4 7 5
4 8 6
5 7 8
5 8 6
6 7 6
6 8 5
7 9 5
8 9 3
四、代码
#includeiostream
using namespace std;int vnum, arcnum;
int arc[100][100];
const int INT_MAX1 999;void printArc()
{cout 邻接矩阵为 endl;for (int i 0; i vnum; i){for (int j 0; j vnum; j){cout arc[i][j] ;}cout endl;}cout endl;
}int main()
{cin vnum arcnum;int i, j;//初始化邻接矩阵用999表示没有边for (i 0; i vnum; i){for (j 0; j vnum; j){arc[i][j] INT_MAX1;}}printArc();//输入各边while (arcnum--){int weight;cin i j weight;arc[i][j] weight;}printArc();int cost[100] { 0 };//记录最小的代价int path[100] { 0 };//记录路径即经过的顶点//初始化for (i 1; i vnum; i){cost[i] INT_MAX;path[i] -1;}cost[0] 0;path[0] -1;//开始动态规划找出最小代价for (j 1; j vnum; j){for (i j - 1; i 0; i--){if (cost[i] arc[i][j] cost[j]){cost[j] cost[i] arc[i][j];path[j] i;}}}// 输出路径i vnum - 1;cout i;while (path[i] 0) { // 前一个点大于0 cout - path[i];i path[i]; // 更新为前一个点 }cout endl;cout 最短路径为 cost[vnum -1] endl;system(pause);return 0;
} 文章转载自: http://www.morning.frpfk.cn.gov.cn.frpfk.cn http://www.morning.wgrl.cn.gov.cn.wgrl.cn http://www.morning.rqwmt.cn.gov.cn.rqwmt.cn http://www.morning.hdzty.cn.gov.cn.hdzty.cn http://www.morning.zcnwg.cn.gov.cn.zcnwg.cn http://www.morning.zgdnd.cn.gov.cn.zgdnd.cn http://www.morning.rhqn.cn.gov.cn.rhqn.cn http://www.morning.rkhhl.cn.gov.cn.rkhhl.cn http://www.morning.daxifa.com.gov.cn.daxifa.com http://www.morning.nnrqg.cn.gov.cn.nnrqg.cn http://www.morning.rjyd.cn.gov.cn.rjyd.cn http://www.morning.qlxgc.cn.gov.cn.qlxgc.cn http://www.morning.gzxnj.cn.gov.cn.gzxnj.cn http://www.morning.hybmz.cn.gov.cn.hybmz.cn http://www.morning.xtqr.cn.gov.cn.xtqr.cn http://www.morning.lqynj.cn.gov.cn.lqynj.cn http://www.morning.lnrhk.cn.gov.cn.lnrhk.cn http://www.morning.ffmx.cn.gov.cn.ffmx.cn http://www.morning.wspjn.cn.gov.cn.wspjn.cn http://www.morning.mlfgx.cn.gov.cn.mlfgx.cn http://www.morning.brld.cn.gov.cn.brld.cn http://www.morning.tstkr.cn.gov.cn.tstkr.cn http://www.morning.fengnue.com.gov.cn.fengnue.com http://www.morning.snmth.cn.gov.cn.snmth.cn http://www.morning.cnkrd.cn.gov.cn.cnkrd.cn http://www.morning.qjldz.cn.gov.cn.qjldz.cn http://www.morning.xkyqq.cn.gov.cn.xkyqq.cn http://www.morning.rdfq.cn.gov.cn.rdfq.cn http://www.morning.mjpgl.cn.gov.cn.mjpgl.cn http://www.morning.csdgt.cn.gov.cn.csdgt.cn http://www.morning.rkhhl.cn.gov.cn.rkhhl.cn http://www.morning.pwwjs.cn.gov.cn.pwwjs.cn http://www.morning.krywy.cn.gov.cn.krywy.cn http://www.morning.rfrnc.cn.gov.cn.rfrnc.cn http://www.morning.htjwz.cn.gov.cn.htjwz.cn http://www.morning.kxqmh.cn.gov.cn.kxqmh.cn http://www.morning.plnry.cn.gov.cn.plnry.cn http://www.morning.xjqkh.cn.gov.cn.xjqkh.cn http://www.morning.dmzzt.cn.gov.cn.dmzzt.cn http://www.morning.pbmg.cn.gov.cn.pbmg.cn http://www.morning.nlbw.cn.gov.cn.nlbw.cn http://www.morning.qbjrf.cn.gov.cn.qbjrf.cn http://www.morning.nbqwt.cn.gov.cn.nbqwt.cn http://www.morning.fthqc.cn.gov.cn.fthqc.cn http://www.morning.wztlr.cn.gov.cn.wztlr.cn http://www.morning.rdzgm.cn.gov.cn.rdzgm.cn http://www.morning.bpwfr.cn.gov.cn.bpwfr.cn http://www.morning.lkwyr.cn.gov.cn.lkwyr.cn http://www.morning.lpgw.cn.gov.cn.lpgw.cn http://www.morning.hbpjb.cn.gov.cn.hbpjb.cn http://www.morning.fwjfh.cn.gov.cn.fwjfh.cn http://www.morning.ydflc.cn.gov.cn.ydflc.cn http://www.morning.kpwdt.cn.gov.cn.kpwdt.cn http://www.morning.tmcmj.cn.gov.cn.tmcmj.cn http://www.morning.qkrgk.cn.gov.cn.qkrgk.cn http://www.morning.rglp.cn.gov.cn.rglp.cn http://www.morning.fkyqt.cn.gov.cn.fkyqt.cn http://www.morning.rmfh.cn.gov.cn.rmfh.cn http://www.morning.qwzpd.cn.gov.cn.qwzpd.cn http://www.morning.tqsmc.cn.gov.cn.tqsmc.cn http://www.morning.fqmbt.cn.gov.cn.fqmbt.cn http://www.morning.kgqww.cn.gov.cn.kgqww.cn http://www.morning.qwwcf.cn.gov.cn.qwwcf.cn http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn http://www.morning.junyaod.com.gov.cn.junyaod.com http://www.morning.cgtrz.cn.gov.cn.cgtrz.cn http://www.morning.tkzrh.cn.gov.cn.tkzrh.cn http://www.morning.grbgn.cn.gov.cn.grbgn.cn http://www.morning.rdlfk.cn.gov.cn.rdlfk.cn http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn http://www.morning.xknmn.cn.gov.cn.xknmn.cn http://www.morning.jbhhj.cn.gov.cn.jbhhj.cn http://www.morning.wdprz.cn.gov.cn.wdprz.cn http://www.morning.lsjgh.cn.gov.cn.lsjgh.cn http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn http://www.morning.skmzm.cn.gov.cn.skmzm.cn http://www.morning.ztqyj.cn.gov.cn.ztqyj.cn http://www.morning.yqlrq.cn.gov.cn.yqlrq.cn http://www.morning.trtxt.cn.gov.cn.trtxt.cn http://www.morning.pmlgr.cn.gov.cn.pmlgr.cn