洛谷 P1359 租用游艇(简单dp/Dijkstra)
给出一张有向图和从第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)相关推荐
- 【洛谷P1359租用游艇】
洛谷P1359租用游艇 为什么想到dp: 比它小的点能转移到它 类似于数字三角形模型 类似于贪心,或者说无后效性,一旦前面某个点确定了最小值,那么后面对其无影响 思路:根据题意,只有小的点能转移到大的 ...
- 洛谷 P1359 租用游艇
题目描述 长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,-,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇.游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1& ...
- 洛谷P1359 租用游艇
题目描述 长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,⋯,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇.游艇出租站 i到游艇出租站 j之间的租金为 r(i,j) ...
- 洛谷P1359租用游艇
建议跟着我的代码自己打个表就懂了 #include<iostream> using namespace std; int n; int t[205][205];//时间 int dp[20 ...
- 洛谷 1359 租用游艇
[题解] 裸的最短路.直接跑dijkstra即可. 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring ...
- P1359 租用游艇 洛谷
https://www.luogu.org/problem/show?pid=1359 题目描述 长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,-,n.游客可在这些游艇出租站租用游艇,并在下游的 ...
- 【洛谷】P1359 租用游艇
题目描述 长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,⋯ ,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇.游艇出租站 i 到游艇出租站 j 之间的租金为 r(i ...
- P1359 租用游艇(dijkstra不优化)
//dijkstra不用优先队列和邻接表优化的话比较好写 题目描述 长江游艇俱乐部在长江上设置了 nn 个游艇出租站 1,2,\cdots,n1,2,⋯,n.游客可在这些游艇出租站租用游艇,并在下游的 ...
- CSP-J冲刺 P1359 租用游艇
题目弹射机:租用游艇 - 洛谷 看完题后,你可以很快对输入进行判断:定义a[i][j]为从i->j的租金 然后就是激(suǒ)动(rán)人(wú)心(wèi)的推导转移方程的环节. 第一步:画 ...
- 洛谷 P1063 能量项链 区间dp
洛谷 P1063 题意:在一串项链中,是环状的,第 i 颗珠子有两个能量a[i]和a[i+1],第i+1颗珠子有两个能量a[i+1]和a[i+2],可以合并两个珠子,得到a[i]*a[i+1]*a[i ...
最新文章
- 多核处理器集成了神经处理单元
- secureCRT 下载文件
- 谈javascript变量声明
- 谷歌发安全警告:社交网络威胁用户隐私
- 河南省第十届省赛 Plumbing the depth of lake (模拟)
- 期货与期权(part3)--期货合约和期权合约
- threejs骨架形状
- python修改服务器ip,[python+Bat]读表修改机房IP
- c语言判断是否是回文字符串
- FPGA常用FIFO简介
- android 启动多个进程,Android开启多进程
- 让您的数据库服务器与您对话:直接从SQL Agent Jobs发送电子邮件
- 腾讯钟翔平:以数字技术驱动,做智慧交通共建者
- 几个关于oracle 11g ASM的问题
- php项目推荐,php教程推荐:最值得推荐的10个php教程
- java jave_jave是什么意思
- 压缩包修改所属目录Linux,LINUX 压缩、解压、打包文件 修改文件所属组
- java pgm_如何用Java读取PGM图像?
- CCF-20180901 卖菜
- 我不谈ChatGPT
热门文章
- win10计算机管理里用户,win10怎么查看有几个用户 win10新增管理员账户的步骤演示...
- 计算机减法函数word,Word中减法公式怎么用
- 【C/C++基础进阶系列】C/C++ STL -- 智能指针
- Swift-基本运算符
- android 设置启动画面,修改Android开机画面
- cloudera安装
- 华为服务器修改root密码,华为云 服务器重置root密码
- linux系统查看物理地址,Linux 下面对物理地址的访问
- Flipped 阅读笔记
- 《MATLAB 神经网络43个案例分析》:第37章 基于灰色神经网络的预测算法研究——订单需求预测