题目链接:http://ac.jobdu.com/problem.php?pid=1162

详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus

参考代码:

//
// 1162 I Wanna Go Home.cpp
// Jobdu
//
// Created by PengFei_Zheng on 20/04/2017.
// Copyright © 2017 PengFei_Zheng. All rights reserved.
// #include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <cmath>
#define MAX 0x7fffffff
using namespace std; int n ,m; int grah[][];
int sup[]; void dijkstra()
{
int dis[];
bool mark[] = {false}; for(int i = ; i < n; i++)
dis[i] = grah[][i]; int s = ;
mark[s] = true;
dis[s] = ;
int newP = s;
for(int i = ; i <= n ; i++){
for( int j = ; j < n ; j++){
if( !mark[j] && grah[newP][j] < MAX && !(sup[newP] == && sup[j] == )){
if(dis[j] > dis[newP] + grah[newP][j])
dis[j] = dis[newP] + grah[newP][j];
}
}
int min = MAX;
for(int j = ; j < n ; j++){
if( !mark[j] && min > dis[j]){
min = dis[j];
newP = j;
}
}
mark[newP] = true;
}
if(dis[] < MAX) printf("%d\n",dis[]);
else printf("-1\n");
} int main(){
while(scanf("%d",&n)!=EOF && n!=){ for(int i = ; i < n ; i++){
for(int j = ; j < n ; j++){
if(i==j) {
grah[i][j]=;
}
else grah[i][j]=MAX;
}
}
scanf("%d",&m);
int x, y, len;
while(m--){
scanf("%d%d%d",&x,&y,&len);
grah[x-][y-] = grah[y-][x-]=len;
}
for(int i = ; i < n ; i++){
scanf("%d",&sup[i]);
}
dijkstra();
}
return ;
} /**************************************************************
Problem: 1162
User: zpfbuaa
Language: C++
Result: Accepted
Time:10 ms
Memory:2932 kb
****************************************************************/

最新文章

  1. 如果你也会C#,那不妨了解下F#(6):面向对象编程之“类”
  2. 短期连载 第1回 万代南梦宫工作室动画的流派 BNS动作捕捉汐留工作室的采访
  3. hibernate基础的CRUD的操作
  4. 怎么定义 logger
  5. 【Thinking in Java-CHAPTER 1&amp;&amp;2】对象导论&amp;&amp;一切都是对象
  6. EMVTag系列6《IAC 发卡行行为代码》
  7. POJ 2724
  8. Linux 关机命令详解
  9. MyBatis拦截器:给参数对象属性赋值
  10. iOS项目进行测试的配置
  11. Java之循环输出等腰三角形
  12. Mybatis第二天(其他)
  13. Android开发——签名包的生成
  14. CentOS下使用命令行Web浏览器Links
  15. .net core使用Pipelines进行消息IO合并
  16. Service Worker MDN英文笔记
  17. 使用html2canvas.js实现页面截图并显示或上传
  18. [POJ2965]The Pilots Brothers&#39; refrigerator (搜索/位运算)
  19. Android连接服务器端的Socket
  20. HTTP STATUS CODE: 521的解决办法

热门文章

  1. Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理
  2. js替换数组中的一个对象用for循环遍历
  3. 在Unity中查找缺失的引用
  4. 读取文件中&quot;-1&quot;的问题,要用int类型。
  5. 转载SQL容易产生的错误问题
  6. 安装 运行yum报错:No module named yum
  7. nagios安装check_linux_stats.pl插件报错Can&#39;t locate Sys/Statistics/Linux.pm in @INC的处理?
  8. 【12月06日】A股全市场情绪指标整理分析
  9. 基于NDK的Android防破解&amp; Android防破解 【转载】
  10. 5 -- Hibernate的基本用法 --4 6 Hibernate事务属性