HDOJ 2066 floyed优化算法
一个人的旅行
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15657 Accepted Submission(s): 5350
#include<cstdio>
#include<cstring>
#define inf 0xffffff
int max_city;
int g[][];
void floyed(int n)
{
int i,j,k;
for(k=;k<=n;k++)
{
for(i=;i<=n;i++)
{
//if(g[i][k]!=inf)//优化floyed
for(j=;j<=n;j++)
{
if(g[i][k]+g[k][j]<g[i][j])
g[j][i]=g[i][j]=g[i][k]+g[k][j];
}
}
}
}
int main()
{
int t,s,d,i,j;
int st[],end;
while(scanf("%d %d %d",&t,&s,&d)!=EOF)
{
max_city=-;
for(i=;i<=;i++)
{
for(j=;j<=;j++)
g[i][j]=inf;
g[i][i]=;
}
int a,b,time;
for(i=;i<=t;i++)
{
scanf("%d %d %d",&a,&b,&time);
if(a>max_city)
max_city=a;
if(b>max_city)
max_city=b;
if(g[a][b]>time)
g[a][b]=g[b][a]=time; }
for(i=;i<=s;i++)
scanf("%d",&st[i]);
floyed(max_city);
int min=inf;
for(i=;i<=d;i++)
{
scanf("%d",&end);
for(j=;j<=s;j++)
if(g[st[j]][end]<min)
min=g[st[j]][end];
}
printf("%d\n",min);
}
return ;
}
优化后:
| 9891653 | 2013-12-25 17:27:21 | Accepted | 2066 | 187MS | 4152K | 992 B | G++ | 泽泽 |
#include<cstdio>
#include<cstring>
#define inf 0xffffff
int max_city;
int g[][];
void floyed(int n)
{
int i,j,k;
for(k=;k<=n;k++)
{
for(i=;i<=n;i++)
{
if(g[i][k]!=inf)//优化floyed
for(j=;j<=n;j++)
{
if(g[i][k]+g[k][j]<g[i][j])
g[j][i]=g[i][j]=g[i][k]+g[k][j];
}
}
}
}
int main()
{
int t,s,d,i,j;
int st[],end;
while(scanf("%d %d %d",&t,&s,&d)!=EOF)
{
max_city=-;
for(i=;i<=;i++)
{
for(j=;j<=;j++)
g[i][j]=inf;
g[i][i]=;
}
int a,b,time;
for(i=;i<=t;i++)
{
scanf("%d %d %d",&a,&b,&time);
if(a>max_city)
max_city=a;
if(b>max_city)
max_city=b;
if(g[a][b]>time)
g[a][b]=g[b][a]=time; }
for(i=;i<=s;i++)
scanf("%d",&st[i]);
floyed(max_city);
int min=inf;
for(i=;i<=d;i++)
{
scanf("%d",&end);
for(j=;j<=s;j++)
if(g[st[j]][end]<min)
min=g[st[j]][end];
}
printf("%d\n",min);
}
return ;
}
HDOJ 2066 floyed优化算法的更多相关文章
- [Algorithm] 群体智能优化算法之粒子群优化算法
同进化算法(见博客<[Evolutionary Algorithm] 进化算法简介>,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简 ...
- 基于网格的分割线优化算法(Level Set)
本文介绍一种网格分割线的优化算法,该方法能够找到网格上更精确.更光滑的分割位置,并且分割线能够自由地合并和分裂,下面介绍算法的具体原理和过程. 曲面上的曲线可以由水平集(level set)形式表示, ...
- paper 8:支持向量机系列五:Numerical Optimization —— 简要介绍求解求解 SVM 的数值优化算法。
作为支持向量机系列的基本篇的最后一篇文章,我在这里打算简单地介绍一下用于优化 dual 问题的 Sequential Minimal Optimization (SMO) 方法.确确实实只是简单介绍一 ...
- MOPSO 多目标例子群优化算法
近年来,基于启发式的多目标优化技术得到了很大的发展,研究表明该技术比经典方法更实用和高效.有代表性的多目标优化算法主要有NSGA.NSGA-II.SPEA.SPEA2.PAES和PESA等.粒子群优化 ...
- SMO优化算法(Sequential minimal optimization)
原文:http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988419.html SMO算法由Microsoft Research的John C. ...
- hdoj 2066 一个人的旅行 【多源多汇最短路】
题目:hdoj 2066 一个人的旅行 方法:缩点 + 最短路 分析:看了大神的一篇博客,讲冗余压缩的,然后就想找一个多源最短路练练手. 这个题目就是典型的多源多汇最短路 方法:把全部的源点压缩成一个 ...
- 优化算法-BFGS
优化算法-BFGS BGFS是一种准牛顿算法, 所谓的"准"是指牛顿算法会使用Hessian矩阵来进行优化, 但是直接计算Hessian矩阵比较麻烦, 所以很多算法会使用近似的He ...
- NYOJ-63 小猴子下落(二叉树及优化算法详解)
小猴子下落 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同.所有结点从左到右从上到下的编号为1,2,3,··· ...
- DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week2优化算法
1. Mini-batch梯度下降法 介绍 假设我们的数据量非常多,达到了500万以上,那么此时如果按照传统的梯度下降算法,那么训练模型所花费的时间将非常巨大,所以我们对数据做如下处理: 如图所示,我 ...
随机推荐
- 编写高质量代码改善C#程序的157个建议[C#闭包的陷阱、委托、事件、事件模型]
前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议38.小心闭包中的陷阱 建议39.了解委托的实质 建议40 ...
- jQuery基础之(五)jQuery自定义添加"$"与解决"$"的冲突
1.自定义添加$ 从上面四篇文章我们看到jQuery的强大,但无论如何,jQuery都不可能满足所有用户的需求,而且有一些需求十分小众,也不适合放到整个jQuery框架中,正是因为这一点,jQuery ...
- js弹出窗口总结6种弹窗方法
注: //关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write("<script language=javascript>window.close(); ...
- groovy-脚本和类
在groovy中定义类和java中是一样的.类的方法可以是static,也可以是非static的. groovy中的方法可以是public, protected, private,同时也支持java中 ...
- jdk版本
windows: set java_home:查看JDK安装路径 java -version:查看JDK版本 linux: whereis java which java (java执行路径) ech ...
- tableView左滑删除功能
实现三个代理方法即可 -(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtI ...
- Linux之Sed命令详解(总结一些实用例子)
简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...
- php多态设计
原文:http://www.cnblogs.com/tecs27/archive/2012/03/13/2394028.html 多态性是指相同的操作或函数.过程可作用于多种类型的对象上并获得不同的结 ...
- mybatis 使用动态SQL
RoleMapper.java public interface RoleMapper { public void add(Role role); public void update(Role ro ...
- 复合主键@IdClass
有时一个实体的主键可能同时为多个,例如同样是之前使用的“CustomerEO”实体,需要通过name和email来查找指定实体,当且仅当name和email的值完全相同时,才认为是相同的实体对象.要配 ...