团体程序设计天梯赛L2-001紧急救援(25分)

#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<cstring>
#define x first
#define y second
using namespace std;
typedef pair<int,int>PII;
const int N=510;
priority_queue<PII,vector<PII>,greater<PII>>h;
vector<PII>e[N];
int val[N],pre[N],dist[N];
int cnt[N];//以i为终点的最短路径的条数
int pep[N];//pep[i]表示到达i点积累的队员人数
bool vis[N];
int n,m,s,d;void dijkstra()
{memset(dist,0x3f,sizeof dist);dist[s]=0;pep[s]=val[s];cnt[s]=1;h.push({0,s});while(h.size()){auto t=h.top();h.pop();int u=t.y;if(vis[u])continue;vis[u]=true;for(auto ed:e[u]){int v=ed.x,w=ed.y;if(dist[v]>dist[u]+w){dist[v]=dist[u]+w;cnt[v]=cnt[u];pep[v]=pep[u]+val[v];pre[v]=u;//记录v是从u转移过来的h.push({dist[v],v});}else if(dist[v]==dist[u]+w){cnt[v]+=cnt[u];if(pep[v]<pep[u]+val[v]){pep[v]=pep[u]+val[v];pre[v]=u;}}}}
}int main()
{cin>>n>>m>>s>>d;for(int i=0;i<n;i++){cin>>val[i];}for(int i=1;i<=m;i++){int a,b,w;cin>>a>>b>>w;e[a].push_back({b,w});e[b].push_back({a,w});}dijkstra();cout<<cnt[d]<<' '<<pep[d]<<endl;vector<int>ans;for(int i=d;i!=s;i=pre[i]){ans.push_back(i);}reverse(ans.begin(),ans.end());printf("%d",s);for(auto it=ans.begin();it!=ans.end();it++){printf(" %d",*it);}return 0;
}

维护最短路径条数和途径点的权值累加相关推荐

  1. Algorithm:C++语言实现之队列相关算法(最短路径条数问题、拓扑排序)

    Algorithm:C++语言实现之队列相关算法(最短路径条数问题.拓扑排序) 目录 队列 1.最短路径条数问题 2.拓扑排序 队列 1.最短路径条数问题

  2. 最短路径 | 1087 三重标尺+记录最短路径条数

    这题可谓最短路的集大成.map或字符串hash的输入处理.多重标尺.最短路径条数. 但是这都是纸老虎,搞清楚逻辑和概念,所有问题迎刃而解. 代码是在宿舍写的.因为声音比较嘈杂,导致写了个很傻比的bug ...

  3. 迷宫问题 —— 最短路径条数

    求迷宫的最短路径条数有多少条,一般方法会超时,这里记录一下模板 简要思路:用ansansans记录到每个点的条数,当新到达的点的新距离小于就旧的距离时,更新新点的ansansans:若新距离等于旧距离 ...

  4. 【总结】最短路径条数问题

    例题:NOI2007 社交网络[难度不大,主要就是考察了这个知识点] 本文进过原作者同意转载,原博主为:  erosun 原地址:http://www.cnblogs.com/acxblog/p/75 ...

  5. sql 统计查询某一字段的某一个值的总条数

    查询某一字段的某一个值的总条数 比如:orderprogressno字段的值分别为1,2,3,4,那么就是查询值为1的总条数和值为2的总条数 select orderno,count(orderpro ...

  6. 【CCCC】L3-011 直捣黄龙 (30分),Dijkstra维护点权,节点数,路径条数等+路径打印

    problem L3-011 直捣黄龙 (30分) 本题是一部战争大片 -- 你需要从己方大本营出发,一路攻城略地杀到敌方大本营.首先时间就是生命,所以你必须选择合适的路径,以最快的速度占领敌方大本营 ...

  7. kafka查看topic中的数据_实战!Kafka Manager能统计出Topic中的记录条数吗?

    问题描述 今天现场实施同事说Kafka Manager上显示有3500w条记录,但使用我们的平台落地后,一统计发现只有2200w条记录,这是不是说明我们的平台存在丢数据的可能. 经了解,对接方是通过如 ...

  8. hbase 查询固定条数_HBase原理深入

    HBase读数据流程 HBase读数据流程.png HBase元数据信息.png HBase读操作 首先从zk中找到meta表的region信息,然后meta表中的数据,meta表中存储了用户的reg ...

  9. 【CCCC】L3-025 那就别担心了 (30分),dfs搜索起点到终点的路径条数。

    problem L3-025 那就别担心了 (30分) 下图转自"英式没品笑话百科"的新浪微博 -- 所以无论有没有遇到难题,其实都不用担心. ziqia.jpg 博主将这种逻辑推 ...

  10. JAVA 之POI导入批量新增、批量检查、日志记录、失败原因、失败条数、数据库映射

    前言 欢迎大家来到我的博客,请各位看客们点赞.收藏.关注三连! 欢迎大家关注我的知识库,Java之从零开始·语雀 你的关注就是我前进的动力! CSDN专注于问题解决的博客记录,语雀专注于知识的收集与汇 ...

最新文章

  1. 干货 | 纽约大学陈溪: AlphaGo Zero技术演进的必然性(附PPT)
  2. 这交互炸了 - 收藏集 - 掘金
  3. Invalid ADAPTORNAME specified. Type 'imaqhwinfo' for a list of available ADAPTORNAMEs. Image acquisi
  4. 请实现一个函数,将字符串中的空格替换成“%20”
  5. 在SAP云平台ABAP编程环境里使用CAP模型创建Fiori应用
  6. ------------------uniq 去重复
  7. LeetCode 139. 单词拆分(DP)
  8. Qt工作笔记-使用SQL中的LIMIT进行数据分页
  9. Enter passphrase for key '/home/mha/.ssh/id_rsa解决方法
  10. 如何在终端编辑文件并保存
  11. 五种最常见的开源路由器第三方固件测评-转
  12. PyQt5学习--基本窗口控件--加载文件-QFileDialog
  13. 利用XML实现通用WEB报表打印(参考)
  14. 计算机网络第二章-----物理层
  15. 深度贝叶斯神经网络(Deep Bayesian Neural Networks)实现方法
  16. python语言与存货管理,(二)实现对库存管理系统的模块化编程
  17. C语言 车辆出租管理系统
  18. SpringBoot 多语言切换
  19. IBM和DoE推出世界上最快的超级计算机
  20. 南阳理工计算机与信息工程学院,南阳理工学院计算机与信息工程学院

热门文章

  1. SAP注塑行业ERP系统软件的分析
  2. 十大IT危机处理高手
  3. java 伊甸园_离伊甸园仅一步之遥
  4. 使用 DiskMaker X 轻松制作 Yosemite 安装 U 盘(引)
  5. 洛谷 P5708 【深基2.习2】三角形面积(C)
  6. css3 clac函数的易错整理
  7. 代码打印颜色(只要您能想到的,都行)——我的颜色控制打印工具mypycolor已经更聪明:参数可以任意接收颜色控制码、颜色描述英文单词的任意组合。
  8. 学前端进度慢怎么办?前端学不懂怎么办?
  9. 分布式 | 浅谈 dble 引入 ClickHouse 的配置操作
  10. Linux多线程pthread使用