给出一张有向图和从第i条边到n的条边的所有花费,求最少的租金

思路:
dp想不明白,虽然我是在训练dp…
图论的话,单源最短路可以用迪杰斯特拉叭
也不需要堆优化,朴素的迪杰斯特拉也能过


#include<bits/stdc++.h>
using namespace std;
int a[202][202];
int g[202];
int n;
bool st[202];
void dijkstra()
{g[1]=0;for(int i=1;i<=n;i++){int t=-1;for(int j=1;j<=n;j++){if(st[j]==0&&(t==-1||g[t]>g[j])){t=j;}}st[t]=1;for(int j=1;j<=n;j++){g[j]=min(g[j],a[t][j]+g[t]);}}
}
int main()
{int i,j;cin>>n;memset(a,0x3f,sizeof a);memset(g,0x3f,sizeof g);memset(st,0,sizeof st);for(i=1;i<=n;i++){for(j=i+1;j<=n;j++){cin>>a[i][j];}}dijkstra();cout<<g[n]<<endl;return 0;
}

但其实这题其实不需要用到图,可以用更直观的普通DP方法。

p[i]表示到i站时的最少租金,m[j][i]表示j到i站的租金。
那么很简单的就能发现:
i = 2 to n
j = 1 to i
p [ i ] = min( p [ i ] , p [ j ] + m [ j ][ i ] )

#include<bits/stdc++.h>using namespace std;int dp[202],a[202][202];
int main()
{int n,i,j,t;cin>>n;for(i=1;i<=n;i++){for(j=i+1;j<=n;j++){cin>>a[i][j];}dp[i]=0x3f;}dp[1]=0;for(i=2;i<=n;i++){for(j=1;j<i;j++)dp[i]=min(dp[i],dp[j]+a[j][i]);}cout<<dp[n]<<endl;return 0;
}

洛谷 P1359 租用游艇(简单dp/Dijkstra)相关推荐

  1. 【洛谷P1359租用游艇】

    洛谷P1359租用游艇 为什么想到dp: 比它小的点能转移到它 类似于数字三角形模型 类似于贪心,或者说无后效性,一旦前面某个点确定了最小值,那么后面对其无影响 思路:根据题意,只有小的点能转移到大的 ...

  2. 洛谷 P1359 租用游艇

    题目描述 长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,-,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇.游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1& ...

  3. 洛谷P1359 租用游艇

    题目描述 长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,⋯,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇.游艇出租站 i到游艇出租站 j之间的租金为 r(i,j) ...

  4. 洛谷P1359租用游艇

    建议跟着我的代码自己打个表就懂了 #include<iostream> using namespace std; int n; int t[205][205];//时间 int dp[20 ...

  5. 洛谷 1359 租用游艇

    [题解] 裸的最短路.直接跑dijkstra即可. 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring ...

  6. P1359 租用游艇 洛谷

    https://www.luogu.org/problem/show?pid=1359 题目描述 长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,-,n.游客可在这些游艇出租站租用游艇,并在下游的 ...

  7. 【洛谷】P1359 租用游艇

    题目描述 长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,⋯ ,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇.游艇出租站 i 到游艇出租站 j 之间的租金为 r(i ...

  8. P1359 租用游艇(dijkstra不优化)

    //dijkstra不用优先队列和邻接表优化的话比较好写 题目描述 长江游艇俱乐部在长江上设置了 nn 个游艇出租站 1,2,\cdots,n1,2,⋯,n.游客可在这些游艇出租站租用游艇,并在下游的 ...

  9. CSP-J冲刺 P1359 租用游艇

    题目弹射机:租用游艇 - 洛谷 看完题后,你可以很快对输入进行判断:定义a[i][j]为从i->j的租金 然后就是激(suǒ)动(rán)人(wú)心(wèi)的推导转移方程的环节. 第一步:画 ...

  10. 洛谷 P1063 能量项链 区间dp

    洛谷 P1063 题意:在一串项链中,是环状的,第 i 颗珠子有两个能量a[i]和a[i+1],第i+1颗珠子有两个能量a[i+1]和a[i+2],可以合并两个珠子,得到a[i]*a[i+1]*a[i ...

最新文章

  1. 多核处理器集成了神经处理单元
  2. secureCRT 下载文件
  3. 谈javascript变量声明
  4. 谷歌发安全警告:社交网络威胁用户隐私
  5. 河南省第十届省赛 Plumbing the depth of lake (模拟)
  6. 期货与期权(part3)--期货合约和期权合约
  7. threejs骨架形状
  8. python修改服务器ip,[python+Bat]读表修改机房IP
  9. c语言判断是否是回文字符串
  10. FPGA常用FIFO简介
  11. android 启动多个进程,Android开启多进程
  12. 让您的数据库服务器与您对话:直接从SQL Agent Jobs发送电子邮件
  13. 腾讯钟翔平:以数字技术驱动,做智慧交通共建者
  14. 几个关于oracle 11g ASM的问题
  15. php项目推荐,php教程推荐:最值得推荐的10个php教程
  16. java jave_jave是什么意思
  17. 压缩包修改所属目录Linux,LINUX 压缩、解压、打包文件 修改文件所属组
  18. java pgm_如何用Java读取PGM图像?
  19. CCF-20180901 卖菜
  20. 我不谈ChatGPT

热门文章

  1. win10计算机管理里用户,win10怎么查看有几个用户 win10新增管理员账户的步骤演示...
  2. 计算机减法函数word,Word中减法公式怎么用
  3. 【C/C++基础进阶系列】C/C++ STL -- 智能指针
  4. Swift-基本运算符
  5. android 设置启动画面,修改Android开机画面
  6. cloudera安装
  7. 华为服务器修改root密码,华为云 服务器重置root密码
  8. linux系统查看物理地址,Linux 下面对物理地址的访问
  9. Flipped 阅读笔记
  10. 《MATLAB 神经网络43个案例分析》:第37章 基于灰色神经网络的预测算法研究——订单需求预测