洛谷 1359 租用游艇
【题解】
裸的最短路。直接跑dijkstra即可。
1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #define LL long long 5 #define rg register 6 #define N 200010 7 using namespace std; 8 int n,tot,last[N],dis[N],pos[N]; 9 struct edge{ 10 int to,pre,dis; 11 }e[N]; 12 struct heap{ 13 int poi,dis; 14 }h[N]; 15 inline int read(){ 16 int k=0,f=1; char c=getchar(); 17 while(c<'0'||c>'9')c=='-'&&(f=-1),c=getchar(); 18 while('0'<=c&&c<='9')k=k*10+c-'0',c=getchar(); 19 return k*f; 20 } 21 inline void up(int x){ 22 int fa; 23 while((fa=(x>>1))&&h[fa].dis>h[x].dis) 24 swap(h[fa],h[x]),swap(pos[h[fa].poi],pos[h[x].poi]),x=fa; 25 } 26 inline void down(int x){ 27 int son; 28 while((son=(x<<1))<=tot){ 29 if(h[son].dis>h[son+1].dis&&son<tot) son++; 30 if(h[son].dis<h[x].dis) 31 swap(h[son],h[x]),swap(pos[h[son].poi],pos[h[x].poi]),x=son; 32 else return; 33 } 34 } 35 inline void dijkstra(int x){ 36 for(rg int i=1;i<=n;i++) dis[i]=1e9; 37 h[tot=pos[x]=1]=(heap){x,dis[x]=0}; 38 while(tot){ 39 int now=h[1].poi; h[1]=h[tot--]; if(tot) down(1); 40 for(rg int i=last[now],to;i;i=e[i].pre) 41 if(dis[to=e[i].to]>dis[now]+e[i].dis){ 42 dis[to]=dis[now]+e[i].dis; 43 if(!pos[to]) h[pos[to]=++tot]=(heap){to,dis[to]}; 44 else h[pos[to]].dis=dis[to]; 45 up(pos[to]); 46 } 47 pos[now]=0; 48 } 49 } 50 int main(){ 51 n=read(); 52 for(rg int i=1;i<=n;i++) 53 for(rg int j=i+1;j<=n;j++) e[++tot]=(edge){j,last[i],read()},last[i]=tot; 54 dijkstra(1); 55 printf("%d\n",dis[n]); 56 return 0; 57 }
View Code
转载于:https://www.cnblogs.com/DriverLao/p/9398059.html
洛谷 1359 租用游艇相关推荐
- 【洛谷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 ...
- P1359 租用游艇 洛谷
https://www.luogu.org/problem/show?pid=1359 题目描述 长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,-,n.游客可在这些游艇出租站租用游艇,并在下游的 ...
- 【洛谷】P1359 租用游艇
题目描述 长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,⋯ ,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇.游艇出租站 i 到游艇出租站 j 之间的租金为 r(i ...
- 洛谷 租用游艇 C++ Dijkstra 单源最短路/dp
题目描述 长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,⋯,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇.游艇出租站 i 到游艇出租站 j 之间的租金为 r(i, ...
- CSP-J冲刺 P1359 租用游艇
题目弹射机:租用游艇 - 洛谷 看完题后,你可以很快对输入进行判断:定义a[i][j]为从i->j的租金 然后就是激(suǒ)动(rán)人(wú)心(wèi)的推导转移方程的环节. 第一步:画 ...
- luogu1359 租用游艇
http://www.elijahqi.win/archives/1614 题目描述 长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,-,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇 ...
最新文章
- mysql替换开头_如何在MySQL的字符串开头搜索和替换特定字符?
- 基于AOA协议的android USB通信
- LeetCode Linked List Cycle II(floyd cycle)
- 【Java后端】三目运算符失效问题刨根问底(及NPE分析)
- spring-boot-devtools 热部署
- keil MDK中如何生成*.bin格式的文件
- linux下看io等待时间,Linux下用iostat探测IO使用情况
- Movie Thumbnails Maker Mac(MTM)使用指南
- 京东万能转链API接口 含商品信息优惠券转链 京东线报如何转链?
- java jasperReports导出PDF字体加粗失效
- 【历史上的今天】10 月 24 日:1024 程序员节;中文维基百科上线;iPad mini 诞生十周年
- 多线程基础之四:Linux提供的原子锁类型atomic_t
- 小仙女讲JVM(1)—综述
- 学习Python的做笔记神器——Jupyter Notebook
- 图扑数字孪生智慧社区,助力社区数字化转型
- 让你平步青云的10个谈话技巧
- python编程练习:提取Visual MODFLOW水均衡数据(.ZOT)文件至表格
- 使用stm32cubeIDE建立USB HOST工程读取大容量U盘(MSC类库)
- WPF ListBox
- 【数据结构C语言-队列】舞伴配对
热门文章
- CSS || 三栏布局,两边固定,中间自适应
- 浅谈RAID写惩罚(Write Penalty)与IOPS计算
- 从vmware技术团队跳槽到微软技术团队(comlan)
- 编写高性能的 Lua 代码
- java IO 解析
- 类的内置方法__attr__介绍
- vue 项目 常用package.json
- c# 任务栏托盘图标鼠标进入MouseEnter和鼠标离开MouseLeave实现
- href=#与href=javascriptvoid(0)的区别
- CentOS5.9下用Kate