博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P2939 [USACO09FEB]改造路Revamping Trails
阅读量:4447 次
发布时间:2019-06-07

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

显然的分层图

设 dis [ i ] [ j ] 表示到点 i , 已经建立了 j 条高速公路的最短距离

然后转移每次都分建立高速公路和不建立高速公路两种情况

跑Djikstra

#include
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;inline int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); } return x*f;}const int N=1e5+7,M=1e5+7;int n,m,K,ans=2e9+7;int fir[N],from[M<<2],to[M<<2],val[N<<2],cntt;inline void add(int &a,int &b,int &c){ from[++cntt]=fir[a]; fir[a]=cntt; to[cntt]=b; val[cntt]=c;}struct node//存当前状态的结构体{ int pos,dis,cnt;//当前的位置,已经走的距离,建立了几条高速公路 inline bool operator < (const node &tmp) const { return dis>tmp.dis; }};priority_queue
q;int dis[N][27];void Dijk(){ memset(dis,127,sizeof(dis)); q.push((node){ 1,0,0}); dis[1][0]=0;//初始状态 node x; while(!q.empty()) { x=q.top(); q.pop(); if(dis[x.pos][x.cnt]!=x.dis) continue; for(int i=fir[x.pos];i;i=from[i]) { int &v=to[i]; if(dis[v][x.cnt]>dis[x.pos][x.cnt]+val[i])//不建立高速公路 { dis[v][x.cnt]=dis[x.pos][x.cnt]+val[i]; q.push((node){v,dis[v][x.cnt],x.cnt}); } if(x.cnt
dis[x.pos][x.cnt])//建立高速公路 { dis[v][x.cnt+1]=dis[x.pos][x.cnt]; q.push((node){v,dis[v][x.cnt+1],x.cnt+1}); } } }}int main(){ int a,b,c; n=read(); m=read(); K=read(); for(int i=1;i<=m;i++) { a=read(); b=read(); c=read(); add(a,b,c); add(b,a,c); } Dijk(); for(int i=0;i<=K;i++) ans=min(ans,dis[n][i]);//取个min printf("%d",ans); return 0;}

 

转载于:https://www.cnblogs.com/LLTYYC/p/9875233.html

你可能感兴趣的文章
【数论】-素数问题整理
查看>>
提高你的Java代码质量吧:正确使用String、StringBuffer、StringBuilder
查看>>
[happyctf]部分writeup
查看>>
HDU 1195 Open the Lock(BFS)
查看>>
Struts2的crud
查看>>
java上传文件
查看>>
大学生对技术网站需求的调查问卷结果分析
查看>>
测试一
查看>>
vertx的HttpServer模块
查看>>
as3事件流机制彻底理解
查看>>
Selenium webdriver操作日历控件
查看>>
Pascal程序练习-与7无关的数
查看>>
Linux:cut命令...未完待续
查看>>
微信小程序从零开始开发步骤(一)搭建开发环境
查看>>
SQL*Net more data to client
查看>>
Tcpdump使用方法总结
查看>>
PX4地面站QGroundControl在ubuntu下的安装
查看>>
react实现svg实线、虚线、方形进度条
查看>>
正则表达式高级用法【原】
查看>>
深入理解JavaScript系列(33):设计模式之策略模式
查看>>