思路

和p4568类似的分层图最短路
从上一层向下一层连边权/2的边即可

代码

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
int u[5000100],v[5000100],w[5000100],fir[5000100],nxt[5000100],cnt,n,m,k,s,t,dis[5000100],vis[5000100];
struct QNode{int dis,x;bool operator < (const QNode &b) const{return dis>b.dis;}
};
priority_queue<QNode> q;
void addedge(int ui,int vi,int wi){++cnt;u[cnt]=ui;v[cnt]=vi;w[cnt]=wi;nxt[cnt]=fir[ui];fir[ui]=cnt;
}
void dij(int s){memset(dis,0x3f,sizeof(dis));memset(vis,0,sizeof(vis));dis[s]=0;q.push((QNode){0,s});while(!q.empty()){QNode u=q.top();q.pop();if(vis[u.x])continue;vis[u.x]=true;for(int i=fir[u.x];i;i=nxt[i]){if(dis[v[i]]>dis[u.x]+w[i]){dis[v[i]]=dis[u.x]+w[i];q.push((QNode){dis[v[i]],v[i]});}}}
}
int main(){scanf("%d %d %d",&n,&m,&k);s=1,t=n;for(int i=1;i<=m;i++){int a,b,c;scanf("%d %d %d",&a,&b,&c);for(int j=1;j<=k+1;j++){addedge(a+(n*(j-1)),b+(n*(j-1)),c);addedge(b+(n*(j-1)),a+(n*(j-1)),c);}for(int j=1;j<=k;j++){addedge(a+(n*(j-1)),b+(n*(j)),c/2);addedge(b+(n*(j-1)),a+(n*(j)),c/2);    }}for(int i=1;i<=k;i++)addedge(t+(n*(i-1)),t+(n*i),0);dij(s);printf("%d\n",dis[t+k*n]);return 0;
}

转载于:https://www.cnblogs.com/dreagonm/p/10550083.html

P4822 [BJWC2012]冻结相关推荐

  1. 解决Ubuntu 14.04 Unity桌面环境登录后冻结问题

    如果你把Ubuntu从13.10更新到14.04,你也许会遇到用Unity桌面环境登录时冻结的现象.引导进入Ubuntu14.04,输入验证信息,系统会挂起,冻结在那里.如果你稍微幸运些,你还能看到鼠 ...

  2. 昨夜,5G R16标准正式冻结!5G物联网扬帆起航

    作者:赵小飞 物联网智库 整理发布 转载请注明来源和出处 导  读 昨天夜里,负责5G标准的国际组织3GPP TSG#88全体会议宣布5G R16标准冻结.在新冠疫情全球肆虐的背景下,标准化推进工作遇 ...

  3. PG 9.4 行冻结信息的测试

    有在网上找过一些关于vacuum_freeze_min_age参数是如何影响vacuum冻结旧行的文章.类似的参考资料可以参看链接: http://blog.csdn.net/luojinbai/ar ...

  4. 为什么python打开pygame秒关闭后在运行_当我关闭Pygame时屏幕冻结

    我推荐以下代码.首先,它包括时钟,这样你的程序就不会让CPU除了轮询事件什么也不做.其次,它调用pygame.quit(),防止程序在windows上空闲运行时冻结.# Sample Python/P ...

  5. JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案

    JS组件系列--Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案 参考文章: (1)JS组件系列--Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案 (2) ...

  6. 同步等待异步操作,为什么Wait()在这里冻结程序

    本文翻译自:Synchronously waiting for an async operation, and why does Wait() freeze the program here Pref ...

  7. 三座”大山“或让谷歌无人机送货项目被冻结

    [阅读原文] 作者:楠沨 谷歌展开过许多创新研发项目,这些项目曾经引发了舆论关注和科技发烧友的兴趣,但是项目均以失败告终,比如超级光纤宽带服务.谷歌眼镜.机器人研究等.后来在成立控股母公司Alphab ...

  8. pytorch 冻结层操作 + 学习率超参数设置

    pytorch finetune冻结层操作 知乎文章:pytorch 两种冻结层的方式 - 知乎 文章说了两种冻结层的方法: 一.设置requires_grad为False 第一步: for para ...

  9. BZOJ 2662: [BeiJing wc2012]冻结(最短路)

    这道题和 BZOJ 2763飞行路线 几乎一模一样..然后飞行路线我是1A,这道题WA了4次,我开始怀疑我的智商了.. ---------------------------------------- ...

最新文章

  1. Visual Studio下Qt调用IDL
  2. 网络层:构成超网(CIDR)
  3. Java核心类库篇6——IO
  4. 最长配对(51Nod-2494)
  5. 拉普拉斯变换_拉普拉斯变化(s变换)定义与性质
  6. delphi连接sql server的字符串2011-10-11 16:07
  7. php jq ajax 4个下拉框联动案列,AJAX_AJAX实现下拉框联动,想当年,为了实现三级联动, - phpStudy...
  8. android消息机制—Looper
  9. UNIX网络编程——shutdown 与 close 函数 的区别
  10. Mybatis传递多个参数
  11. 第四季-专题6-Linux内核子系统
  12. 拓端tecdat|R语言进行相关矩阵分析及其网络可视化
  13. 技术分享 | Online DDL 工具 gh-ost
  14. HttpClient 4.1版本,模拟登录,终于成功了(2)
  15. win10玩我的世界java_我的世界win10java下载
  16. 计算机9网络连接不上,本地连接连不上,教您电脑本地连接连不上怎么解决
  17. 计算机基础,Java介绍和环境搭建及Hello World
  18. 周报,当前是第几周 ?
  19. Super Ugly Number
  20. 数据结构(C语言)- 稀疏矩阵的快速乘法

热门文章

  1. Java 高级算法——数组中查询重复的数字之二
  2. 记OC迁移至swift中笔记20tips
  3. 进程间通信之-信号signal--linux内核剖析(九)
  4. ios 中如何应对UIScrollView快速滑动(暴力用户,暴力测试)
  5. 《Linux内核设计与实现》读书笔记 - 目录 (完结)【转】
  6. Samba简单应用案例
  7. ORACLE之常用FAQ二 [转]
  8. 使用采用 Android* OS 的英特尔® 集成性能基元
  9. WebServer起不来,如何查看原因
  10. Android开发学习之录音同步播放的实现