73. 找最佳通路

★☆   输入文件:city.in   输出文件:city.out   简单对比

时间限制:1 s   内存限制:128 MB

问题描述
有 n 个 城市,它们之间的交通情况已知。现在要求根据一个出发点Cs和一个到达点Cd,请编程序,由计算机找到从城市Cs 到 Cd 的一条路径,要求经过城市最少。

【输入格式】

输入文件: city.in

输入由若干行组成,第一行有四个整数,n(1≤n≤50)、m(1≤m≤n*n)和s(1≤s≤n)、e(1≤e≤n);n表示城市数,m表示道路数,s和e表示出发点和到达点。

第 2至m+1行是m 条边的 信息,每行两个整数,为边的起点和终点。

【输出格式】

输出文件: city.out

一个整数,经过城市的个数(包括起点和终点)

【输入样例】

输入文件名:city.in

6 6 1 5 
1 3 
2 6 
3 6 
3 2 
6 4 
4 5

输出文件名:city.out

5

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>

using namespace std;
const int N=55;
const int INF=99999999;

int map[N][N];
int n,m,start,endd;
int u,v;

inline int read()
{
	int x=0;int f=1;char c=getchar();
	while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=-1;c=getchar();}
	while(c>=‘0‘&&c<=‘9‘)x=x*10+c-‘0‘,c=getchar();
	return x*f;
}

int main()
{
	freopen("city.in","r",stdin);
	freopen("city.out","w",stdout);
	n=read(),m=read(),start=read(),endd=read();
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			map[i][j]=INF;
	for(int i=1;i<=n;i++)
		map[i][i]=0;
	for(int i=1;i<=m;i++)
		u=read(),
		v=read(),
		map[u][v]=map[v][u]=1;
	for(int k=1;k<=n;k++)
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				map[i][j]=min(map[i][j],map[i][k]+map[k][j]);
	printf("%d",map[start][endd]+1);
	return 0;
}

  

时间: 2024-08-03 07:15:48

73. 找最佳通路的相关文章

zzuoj 找最佳通路

校内的OJ,得把题目粘上来 Description 有 n 个 城市,它们之间的交通情况已知.现在要求根据一个出发点Cs和一个到达点Cd,请编程序,由计算机找到从城市Cs 到 Cd 的一条路径,要求经过城市最少. Input 输入由若干行组成,第一行有四个整数,n(1≤n≤50).m(1≤m≤n*n)和s(1≤s≤n).e(1≤e≤n):n表示城市数,m表示道路数,s和e表示出发点和到达点. 第 2至m+1行是m 条边的 信息,每行两个整数,为边的起点和终点. Output 一个整数,经过城市的

HDU 1533 KM算法(权值最小的最佳匹配)

Going Home Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3299    Accepted Submission(s): 1674 Problem Description On a grid map there are n little men and n houses. In each unit time, every l

设置最佳线程数总结

看到一篇关于最佳线程数相关的文章,内容比较经典,不敢私藏,分享一下! 最佳线程数: 性能压测的情况下,起初随着用户数的增加,QPS会上升,当到了一定的阀值之后,用户数量增加QPS并不会增加,或者增加不明显,同时请求的响应时间却大幅增加.这个阀值我们认为是最佳线程数. 为什么要找最佳线程数 1.过多的线程只会造成,更多的内存开销,更多的CPU开销,但是对提升QPS确毫无帮助 2.找到最佳线程数后通过简单的设置,可以让web系统更加稳定,得到最高,最稳定的QPS输出 最佳线程数的获取: 1.通过用户

Tomcat设置最佳线程数总结

最佳线程数: 性能压测的情况下,起初随着用户数的增加,QPS会上升,当到了一定的阀值之后,用户数量增加QPS并不会增加,或者增加不明显,同时请求的响应时间却大幅增加.这个阀值我们认为是最佳线程数. 为什么要找最佳线程数 1.过多的线程只会造成,更多的内存开销,更多的CPU开销,但是对提升QPS确毫无帮助 2.找到最佳线程数后通过简单的设置,可以让web系统更加稳定,得到最高,最稳定的QPS输出 最佳线程数的获取: 1.通过用户慢慢递增来进行性能压测,观察QPS,响应时间 2.根据公式计算:服务器

最佳线程数总结

最佳线程数: 性能压测的情况下,起初随着用户数的增加,QPS会上升,当到了一定的阀值之后,用户数量增加QPS并不会增加,或者增加不明显,同时请求的响应时间却大幅增加.这个阀值我们认为是最佳线程数. 为什么要找最佳线程数 1.过多的线程只会造成,更多的内存开销,更多的CPU开销,但是对提升QPS确毫无帮助 2.找到最佳线程数后通过简单的设置,可以让web系统更加稳定,得到最高,最稳定的QPS输出 最佳线程数的获取: 1.通过用户慢慢递增来进行性能压测,观察QPS,响应时间 2.根据公式计算:服务器

Android寻找匹配最佳资源的原理

原文地址:http://developer.android.com/guide/topics/resources/providing-resources.html 当应用中提供复选资源的时候,Android系统会依据当前前的系统配置,在运行过程中寻找最优的资源.下面,以这几个文件中的图片资源为例,解析Android系统定位多选资源的过程: drawable/ drawable-en/ drawable-fr-rCA/ drawable-en-port/ drawable-en-notouch-1

编程实践积累

1 编程经验实践,积累,总结,分享 2 3 4 博客地址:http://www.cnblogs.com/liaowanzhong/ 5 6 7 8 9 10 11 12 13 14 15 1. 大量群发邮件:购买Edm服务,大的互联网企业是和邮箱服务商签订协议(百度,腾讯,京东,阿里,csdn) 16 站内信 17 内网发短信:短信猫 18 19 2. Servlet Filter 生命周期 20 *Servlet:看配置文件中web.xml配置其启动的优先级别,即当load-on-startu

阈值分类法

数据集:seeds.tsv 15.26 14.84 0.871 5.763 3.312 2.221 5.22 Kama 14.88 14.57 0.8811 5.554 3.333 1.018 4.956 Kama 14.29 14.09 0.905 5.291 3.337 2.699 4.825 Kama 13.84 13.94 0.8955 5.324 3.379 2.259 4.805 Kama 16.14 14.99 0.9034 5.658 3.562 1.355 5.175 Kama

N数码问题的启发式搜索算法--A*算法python实现

一.启发式搜索:A算法 1)评价函数的一般形式 : f(n) = g(n) + h(n) g(n):从S0到Sn的实际代价(搜索的横向因子) h(n):从N到目标节点的估计代价,称为启发函数(搜索的纵向因子); 特点: 效率高, 无回溯, 搜索算法 OPEN表 : 存放待扩展的节点. CLOSED表 : 存放已被扩展过的节点. 2)评价函数  f(x) = g(x) + h(x) 当f(x) = g(x)   时,为宽度优先搜索 当f(x) = 1/g(x)时,为深度优先搜索 当f(x) = h