zoukankan      html  css  js  c++  java
  • 洛谷P1359 租用游艇

    原题链接

    原题链接

    算法概述

      f[i]表示从1号点开始到当前站点下船所需的最少价值。

      对于f[i],考虑枚举最后一次租船的起始站点j,1<=j<=i-1,

      则有f[i]=min{f[j] + w[j][i]}

      边界,显然在1号点时无需付钱,f[1]=0。

      注意要求最小值,故初始化正无穷。

    参考代码

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    const int N=210,INF=0x3f3f3f3f;
    
    int w[N][N];
    int f[N];
    int n;
    
    int main()
    {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++)
    		for(int j=i+1;j<=n;j++)
    			scanf("%d",&w[i][j]);
    	
    	memset(f,0x3f,sizeof f);
    	f[1]=0;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<i;j++)
    			f[i]=min(f[i],f[j]+w[j][i]);
    	
    	printf("%d
    ",f[n]);
    	return 0;
    }
  • 相关阅读:
    A1035
    A1005
    A1073
    A1061
    A1058
    A1027
    A1019
    Java 操作临时文件创建与删除
    面试必会之HashMap源码分析
    springboot整合cxf框架启动报错
  • 原文地址:https://www.cnblogs.com/ninedream/p/12926772.html
Copyright © 2011-2022 走看看