zoukankan      html  css  js  c++  java
  • 【动态规划】旅行

    原题传送门

    思路


    果断dp!!!
    dp[i]表示第i远的旅店到终点的路程数.

    那么,若j(j<i)可以到达i,就将dp[j]加上dp[i].

    过于简单,不过多解释.
    时间复杂度:O(n2).
    空间复杂度:O(n).

    Code


    #include<iostream>
    #include<algorithm>
    using namespace std;
    
    int a[50]={0,990,1010,1970,2030,2940,3060,3930,4060,4970,5030,5990,6010,7000};
    int dp[50];
    int A,B,n;
    
    int main()
    {
        cin>>A>>B>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>a[13+i];
        }
        n+=13;
        sort(a+1,a+n+1);
        dp[n]=1;
        for(int i=n;i>=0;i--)
        {
            for(int j=i+1;j<=n;j++)
            {
                if (a[j]-a[i]>=A&&a[j]-a[i]<=B)
                    dp[i]+=dp[j];
            }
        }
        cout<<dp[0]<<endl;
        return 0;
    }
    
  • 相关阅读:
    1 3
    linux常用命令
    linux的目录结构
    linux的shell编程
    linux的IP配置
    linux安装
    linux简介
    ubuntu16.04上系统管理服务和配置
    PXE
    RPC框架原理
  • 原文地址:https://www.cnblogs.com/gongdakai/p/11031556.html
Copyright © 2011-2022 走看看