[最短路径] HDU 1869 - 六度分离
来源:互联网 发布:建模数据挖掘师 编辑:程序博客网 时间:2024/05/19 02:24
跑N遍Dijkstra即可,时间复杂度大概是O(N3)的样子。
#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h>#include <algorithm>#include <iostream>#include <set>#include <map>#include <queue>#include <stack>#include <assert.h>#include <time.h>typedef long long LL;const int INF = 500000001;const double EPS = 1e-9;const double PI = acos(-1.0);using namespace std;int N, M;int graph[101][101], vis[101], dis[101][101];void init(){ for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { if(i == j) graph[i][j] = 0; else graph[i][j] = INF; } }}void Dijkstra(int s){ for(int i = 0; i < N; i++) { dis[s][i] = graph[s][i]; } for(int i = 1; i < N; i++) { int k = -1; int minn = INF; for(int j = 0; j < N; j++) { if(vis[j] == -1 && minn > dis[s][j]) { minn = dis[s][j]; k = j; } } if(k == -1) { break; } vis[k] = 1; for(int j = 0; j < N; j++) { if(vis[j] == -1 && dis[s][j] > dis[s][k] + graph[k][j]) { dis[s][j] = dis[s][k] + graph[k][j]; } } }}int main(){ #ifdef _1Test freopen("test0.in", "r", stdin); freopen("test0.out", "w", stdout); srand(time(NULL)); #endif while(~scanf("%d %d", &N, &M)) { init(); int u, v; for(int i = 0; i < M; i++) { scanf("%d %d", &u, &v); graph[u][v] = graph[v][u] = 1; } for(int i = 0; i < N; i++) { memset(vis, -1, sizeof(vis)); vis[i] = 1; Dijkstra(i); } int flag = 1; for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { if(dis[i][j] > 7) { flag = 0; break; } } if(!flag) { break; } } if(flag) puts("Yes"); else puts("No"); } return 0;}
0 0
- 【最短路径floyd算法】HDU 1869---六度分离
- [最短路径] HDU 1869 - 六度分离
- HDU 1869 六度分离 (最短路径---floyd)
- HDU:1869 六度分离(floyd最短路径算法打表)
- hdu1869六度分离(最短路径基础--Folyd)
- HDU1869六度分离(最短路径)
- HDOJ 1869 六度分离(最短路径,dijkstra算法,SPFA邻接表,floyd算法)
- hdoj-1869 六度分离【最短路径--dijkstra&&spfa&&floyd】
- 杭电1869-六度分离(最短路径,dijkstra,spfa,floyd)
- HDU-1869 六度分离 最短路
- HDU-1869-六度分离【最短路】
- 六度分隔与最短路径
- 六度分隔与最短路径
- 六度分隔与最短路径
- 六度分隔与最短路径
- hdu 1869(最短路flody-六度分离)
- hdu 1869 六度分离【裸最短路】
- HDU 1869六度分离(flody最短路)
- 推荐!国外程序员整理的系统管理员资源大全
- 安卓SDK API下载
- Ubuntu下,清屏等终端常用命令
- hehe
- SDUT_2015寒假集训_动规递推_A-蟠桃记
- [最短路径] HDU 1869 - 六度分离
- 杭电2012素数判定
- 电脑中为何有些文件无法删除
- 推荐!国外程序员整理的系统管理员资源大全
- 程序员之路——如何学习C语言并精通C语言
- How to program the QBoard1, 2 and 3
- java内存分析
- shell替换功能
- 作为