L2-001 紧急救援 (25 分)
时间:2019-02-19
本文章向大家介绍L2-001 紧急救援 (25 分),主要包括L2-001 紧急救援 (25 分)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#include<cstdio>
#include<string.h>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<vector>
#define N 0x3f3f3f3f
#define p 510
using namespace std;
int s[p];
int mpp[p][p];
int num[p]; //节点i同长路径数目
int pre[p]; //前驱节点
int vis[p]; //标记
int val[p]; //节点消防员数目
int w[p]; //走到节点i召集的消防员最大数目
int n,m,ss,d;
void dijskra(int x)
{
for(int i=0;i<n;i++)
{
vis[i]=0,s[i]=N;
}
s[x]=0;
w[x]=val[x];
num[x]=1;
for(int i=0;i<n;i++)
{
int u=-1;
int maxx=N;
for(int j=0;j<n;j++)
{
if(!vis[j]&&s[j]<maxx)
{
u=j;
maxx=s[j];
}
}
if(u==-1)
break;
vis[u]=1;
for(int j=0;j<n;j++)
{
if(!vis[j]&&s[j]>s[u]+mpp[u][j])
{
s[j]=s[u]+mpp[u][j];
num[j]=num[u];
w[j]=val[j]+w[u];
pre[j]=u;
}
else if(!vis[j]&&s[j]==s[u]+mpp[u][j])
{
num[j]+=num[u];
if(w[j]<w[u]+val[j])
{
w[j]=w[u]+val[j];
pre[j]=u;
}
}
}
}
return ;
}
int find(int x)
{
if(x==ss)
{
cout<<x;
return 0;
}
find(pre[x]);
cout<<" "<<x;
return 0;
}
int main()
{
cin>>n>>m>>ss>>d;
for(int i=0;i<n;i++)
{
cin>>val[i];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
mpp[i][j]=N;
}
}
for(int i=0;i<m;i++)
{
int x,y,z;
cin>>x>>y>>z;
mpp[x][y]=mpp[y][x]=z;
}
dijskra(ss);
cout<<num[d]<<" "<<w[d]<<endl;
find(d);
return 0;
}
- JSON.stringify(), JSON.parse(), toJSON()方法使用
- compression功能测试
- 源码阅读再来一发:解读RGW中request的处理流程
- 绘制Crushmap分布图-Python
- RGW奇淫技巧-玩转system特权
- 源码走读rgw内置civetweb的参数初始化过程
- 重磅:Flume1-7结合kafka讲解
- 遍历删除List中的元素
- RGW Bucket Shard设计与优化-下
- RGW Bucket Shard设计与优化-中
- 实战phoenix
- WPF/Silverlight中的Command
- RGW Bucket Shard设计与优化-上
- 实弹军演-基于Ceph对象存储的实战兵法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法