博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nyoj 城市平乱(Dijkstra)
阅读量:5013 次
发布时间:2019-06-12

本文共 2046 字,大约阅读时间需要 6 分钟。

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 #include
17 using namespace std; 18 #define INF 1000000007 19 #define MAXN 2010 20 #define Mod 1000007 21 #define N 100010 22 #define NN 30 23 #define sigma_size 3 24 const int MAX = 1000100; 25 const int maxn = 6e5 + 10; 26 using namespace std; 27 typedef long long LL; 28 29 bool vis[1010]; 30 int G[1010][1010]; 31 int army[1100]; 32 int dist[1010]; 33 int n, m, p, q; 34 int u, v, w, tmp; 35 36 void Dijkstra(int src) 37 { 38 int min, pos; 39 for (int i = 1; i <= m; ++i) 40 dist[i] = G[src][i]; 41 dist[src] = 0; 42 vis[src] = true; 43 for (int i = 1; i <= m; ++i) { 44 min = MAX; 45 for (int j = 1; j <= m; ++j) { 46 if (dist[j] < min && !vis[j]) { 47 min = dist[j]; 48 pos = j; 49 } 50 } 51 if (min == MAX) return; 52 vis[pos] = true; 53 for (int j = 1; j <= m; ++j){ 54 if (!vis[j] && dist[pos] + G[pos][j] < dist[j]) { 55 dist[j] = dist[pos] + G[pos][j]; 56 } 57 } 58 } 59 } 60 61 void run() 62 { 63 scanf("%d%d%d%d", &n, &m, &p, &q); 64 memset(army,0,sizeof(army)); 65 memset(vis,0,sizeof(vis)); 66 memset(dist,0,sizeof(dist)); 67 for (int i = 0; i <= m; ++i) { 68 for (int j = 0; j <= m; ++j) { 69 G[i][j] = G[j][i] = MAX; 70 } 71 } 72 for (int i = 0; i < n; ++i) { 73 scanf("%d", &tmp); 74 army[tmp] = 1; 75 } 76 for (int i = 1; i <= p; ++i) { 77 scanf("%d%d%d", &u, &v, &w); 78 if (G[u][v] > w) G[u][v] = G[v][u] = w; 79 } 80 Dijkstra(q); 81 /*for (int i = 1; i <= m; ++i) 82 cout << dist[i] << " "; 83 cout << endl;*/ 84 int mmax = MAX; 85 for (int i = 1; i <= m; ++i) { 86 if (mmax > dist[i] && army[i]) 87 mmax = dist[i]; 88 } 89 printf("%d\n",mmax); 90 //system("pause"); 91 } 92 93 int main() 94 { 95 int T; 96 scanf("%d",&T); 97 while (T--) 98 run(); 99 return 0;100 }

 

转载于:https://www.cnblogs.com/usedrosee/p/4333752.html

你可能感兴趣的文章
14款下载有用脚本的超酷网站
查看>>
LXC-Linux Containers介绍
查看>>
7.31实习培训日志-docker sql
查看>>
c#中使用servicestackredis操作redis
查看>>
ios app 真机crash报告分析
查看>>
CRC标准以及简记式
查看>>
SEO搜索引擎
查看>>
关于本地使用tomcat部署web应用,浏览器自动跳转为https的问题
查看>>
一、Text To Speech
查看>>
Java读取并下载网络文件
查看>>
github上构建自己的个人网站
查看>>
在word中粘贴的图片为什么显示不完整
查看>>
SQL Server 数据库的鼠标操作
查看>>
net软件工程师求职简历
查看>>
总线置顶[置顶] Linux bus总线
查看>>
nullnullHandling the Results 处理结果
查看>>
SQL SERVER BOOK
查看>>
JS基础回顾,小练习(判断数组,以及函数)
查看>>
多任务——进程
查看>>
WCF:如何将net.tcp协议寄宿到IIS
查看>>