博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DongDong坐飞机
阅读量:5366 次
发布时间:2019-06-15

本文共 2506 字,大约阅读时间需要 8 分钟。

题目连接:

  第一次研究了一下这种题型,还是比较好理解的,因为有半价次数的限制,所以要把每一中情况都写出来,dp[现在的位置][次数]推到dp[到达的位置][次数]和dp[到达的位置][次数+1]这两种情况,然后跑一下最短路就可以了

  AC代码:

#include
using namespace std;typedef long long ll;typedef struct W_W{ int eend; int weight; int next;}miao;typedef struct W_w{ int eend; int ci;}wang;ll minn(ll a,ll b){ if(a
q1; q1.push({
1,0}); dp[1][0]=0; while(q1.size()){ int dang=q1.front().eend; int ci=q1.front().ci; //printf("+++%d %d %lld \n",dang,ci,dp[dang][ci]); q1.pop(); vis[dang][ci]=0; for(int i=head[dang];i!=-1;i=x[i].next){ int to=x[i].eend; if(dp[to][ci]==-1){ dp[to][ci]=dp[dang][ci]+x[i].weight; if(vis[to][ci]==0){ q1.push({to,ci}); vis[to][ci]=1; } } else{ if(dp[to][ci]>dp[dang][ci]+x[i].weight){ dp[to][ci]=dp[dang][ci]+x[i].weight; if(vis[to][ci]==0){ q1.push({to,ci}); vis[to][ci]=1; } } } if(ci+1<=k){ if(dp[to][ci+1]==-1){ dp[to][ci+1]=dp[dang][ci]+x[i].weight/2; if(vis[to][ci+1]==0){ q1.push({to,ci+1}); vis[to][ci+1]=1; } } else{ if(dp[to][ci+1]>dp[dang][ci]+x[i].weight/2){ dp[to][ci+1]=dp[dang][ci]+x[i].weight/2; if(vis[to][ci+1]==0){ q1.push({to,ci+1}); vis[to][ci+1]=1; } } } } } }// for(int i=1;i<=eend;i++){// for(int j=0;j<=k;j++){// printf("(%d %d) %lld ",i,j,dp[i][j]);// }// printf("\n");// } ll ans=-1; for(int i=0;i<=k;i++){ // printf("+++%lld %d %d %lld\n",ans,eend,i,dp[eend][i]); if(dp[eend][i]!=-1){ if(ans==-1){ ans=dp[eend][i]; } else{ ans=minn(dp[eend][i],ans); } } } return ans;}int main(){ int m,n,k; scanf("%d %d %d",&m,&n,&k); memset(head,-1,sizeof(head)); memset(dp,-1,sizeof(dp)); memset(vis,0,sizeof(vis)); for(int i=0;i

 

转载于:https://www.cnblogs.com/fzw1523/p/11025062.html

你可能感兴趣的文章
利用bootstrap和webform的异步CRUD及分页
查看>>
HDUOJ 1879继续畅通工程(并查集)
查看>>
OC12_自动释放池
查看>>
Saiku资源帖
查看>>
解决手机页面中点击文本框,网页放大问题
查看>>
2-5
查看>>
牛客多校3 A-PACM Team(状压降维+路径背包)
查看>>
HDU - 4284 Travel(floyd+状压dp)
查看>>
1027 制作表格
查看>>
Android之Socket通信、List加载更多、Spinner下拉列表
查看>>
面向对象的介绍与特性
查看>>
typing-python用于类型注解的库
查看>>
20189215 2018-2019-2 《密码与安全新技术专题》第13周作业
查看>>
第四周作业
查看>>
一、HTML基础
查看>>
蓝牙进阶之路 (002) - HC-05与HC-06的AT指令的区别(转)
查看>>
mysql的limit经典用法及优化
查看>>
C#后台程序与HTML页面中JS方法互调
查看>>
mysql 同一个表中 字段a 的值赋值到字段b
查看>>
linux系统可执行文件添加环境变量使其跨终端和目录执行
查看>>