多段图问题是DP的基础题目。大体的意思是有一个赋权有向图,其顶点集被分为几个子集。求经过每个子集从源点到终点的最短路径

 import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.Stack; public class Main {
private static final int k = 3;
private static int[] P = new int[k]; public static void MultiGraph(int[][] G,int n)
{
int[] COST = new int[n]; Arrays.fill(COST,100);
int[] D = new int[n];
int temp = 100;
COST[0]=0;
D[0]=0;
for(int j=1;j<n;j++)
{
for(int r = 0;r<j;r++)
{ if(G[j][r]!=0)
{
if(COST[j]>COST[r] + G[j][r])
{
COST[j]=COST[r]+G[r][j];
temp = r; }
} } D[j] = temp;
}
P[k-1]=D[n-1];
P[0]=0;
for(int j = 2;j>1;j--)
{
P[j-1] = D[P[j]];
}
for (int te: P
) {
System.out.println(te); }
} public static void main(String[] args)
{
//新建一个树
int[][] G = {
{0,2,3,4,0,0,0},
{2,0,0,0,6,0,0},
{3,0,0,0,5,0,0},
{4,0,0,0,0,2,0},
{0,6,5,0,0,0,3},
{0,0,0,4,0,0,1},
{0,0,0,0,3,1,0},
}; MultiGraph(G,7); } }

多段图动态规划dp的更多相关文章

  1. Expm 4_1 多段图中的最短路径问题

      [问题描述] 建立一个从源点S到终点T的多段图,设计一个动态规划算法求出从S到T的最短路径值,并输出相应的最短路径. 解 package org.xiu68.exp.exp4; public cl ...

  2. 动态规划dp

    一.概念:动态规划dp:是一种分阶段求解决策问题的数学思想. 总结起来就一句话:大事化小,小事化了 二.例子 1.走台阶问题 F(10):10级台阶的走法数量 所以:F(10)=F(9)+F(8) F ...

  3. 算法-动态规划DP小记

    算法-动态规划DP小记 动态规划算法是一种比较灵活的算法,针对具体的问题要具体分析,其宗旨就是要找出要解决问题的状态,然后逆向转化为求解子问题,最终回到已知的初始态,然后再顺序累计各个子问题的解从而得 ...

  4. P1736 创意吃鱼法 图的DP

    题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...

  5. zoj1232Adventure of Super Mario(图上dp)

    题目连接: 啊哈哈.点我点我 思路: 这个题目是一个图上dp问题.先floyd预处理出图上全部点的最短路,可是在floyd的时候,把可以用神器的地方预处理出来,也就是转折点地方不能为城堡..预处理完成 ...

  6. P1121 环状最大两段子段和(DP)

    P1121 环状最大两段子段和 难度 提高+/省选- 题目描述 给出一段环状序列,即认为A[1]和A[N]是相邻的,选出其中连续不重叠且非空的两段使得这两段和最大. 输入输出格式 输入格式: 输入文件 ...

  7. CF833B-线段树优化DP

    CF833B-线段树优化DP 题意 将一个长为\(n\)的序列分成\(k\)段,每段贡献为其中不同数字的个数,求最大贡献和. 思路 此处感谢@gxy001 聚铑的精彩讲解 先考虑暴力DP,可以想到一个 ...

  8. UVA - 116 Unidirectional TSP 多段图的最短路 dp

    题意 略 分析 因为字典序最小,所以从后面的列递推,每次对上一列的三个方向的行排序就能确保,数字之和最小DP就完事了 代码 因为有个地方数组名next和里面本身的某个东西冲突了,所以编译错了,后来改成 ...

  9. uva 116 Unidirectional TSP(动态规划,多段图上的最短路)

    这道题目并不是很难理解,题目大意就是求从第一列到最后一列的一个字典序最小的最短路,要求不仅输出最短路长度,还要输出字典序最小的路径. 这道题可以利用动态规划求解.状态定义为: cost[i][j] = ...

随机推荐

  1. PKI标准、CA采取的规范、X509、PKCS

    PKI:Public Key Infrastructure 公钥基础设施 PKI标准可以分为第一代和第二代标准. 第一代PKI标准主要包括美国RSA公司的公钥加密标准(Public Key Crypt ...

  2. 使用BIND安装智能DNS服务器(一)---基本的主从DNS服务器搭建

    参考网址:http://www.unixmen.com/dns-server-installation-step-by-step-using-centos-6-3/ DNS(Domain Name S ...

  3. Ubuntu如何锁定分辨率

    终于把Ubuntu的虚拟机装好了,但是分辨率没有1920*1080是什么鬼啊? 下面详细讲一下如何设置1920*1080的分辨率并设置,主要都是照着前辈的博客自己在操作一遍熟悉一下,嘿嘿. 1.安装v ...

  4. 7.12实习培训日志 Linux Docker

    Linux 管理 RHEL7 的用户和组 用户的属性修改 chage -l [username] #查看用户信息 usermod --expiredate=YYYY-MM-DD [username] ...

  5. HDU 1556 Color the ball 前缀和+思维

    Color the ball N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球 ...

  6. SQL Server等待事件新解

    资源等待类型 并行:CXPACKET Buffer:PAGEIOLATCH_X 非Buffer:LATCH_X I/O:ASYNC_IO_COMPITION:IO_COMPITION CPU:SOS_ ...

  7. python 2 与python 3 区别

    print def print(self, *args, sep=' ', end='\n', file=None): # known special case of print "&quo ...

  8. 数据库路由中间件MyCat - 源代码篇(5)

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 3. 连接模块 如之前所述,MyCat的连接分为前端和后端,下面是连接基本相关类图: 3.1 Closabl ...

  9. Oracle SQL调优之分区表

    目录 一.分区表简介 二.分区表优势 三.分区表分类 3.1 范围分区 3.2 列表分区 3.3 散列分区 3.4 组合分区 四.分区相关操作 五.分区相关查询 附录:分区表索引失效的操作 一.分区表 ...

  10. 苦逼三流小公司程序员这半年找工作经历(3)——选择offer

    本文按照企业规模.性质.规模,分成三类,点评一下遇到的这些公司.也算是为半年找工作经历的一个总结. 1,三流小公司 公司规模类似于笔者跳槽前所在企业,性质有外商独资.合资,当然大多数都是民营企业,规模 ...