神华两学一做网站重庆做网站seo优化选哪家好
news/
2025/9/29 11:53:54/
文章来源:
神华两学一做网站,重庆做网站seo优化选哪家好,官网网页制作,教学网站模板下载1 /*2 题目大意#xff1a;3 就是一幢大厦中有0#xff5e;99的楼层, 然后有1#xff5e;5个电梯#xff01;每个电梯有一定的上升或下降速度和楼层的停止的位置#xff01;4 问从第0层楼到第k层最少经过多长时间到达#xff01;5 6 思路#x… 1 /*2 题目大意3 就是一幢大厦中有099的楼层, 然后有15个电梯每个电梯有一定的上升或下降速度和楼层的停止的位置4 问从第0层楼到第k层最少经过多长时间到达5 6 思路明显的Dijkstra 在建图的时候u-v可能有多个电梯到达取时间最少的当作路径的权值 7 如果我们发现 d[i] d[j] map[j][i] 60, 那么说明从第0层到达第 i 层的时间大于从第j层8 转移到其他电梯然后到达第 i 层的时间那么就更新d[i]的值 9
10 */
11 #includeiostream
12 #includecmath
13 #includecstring
14 #includecstdio
15 #includealgorithm
16
17 using namespace std;
18 const int INF 0x3f3f3f3f;
19 int map[105][105];
20 int d[105];
21 int t[5];
22 int lift[105];
23 int vis[105];
24 int n, k;
25
26 void addEdge(int a, int b, int tt){
27 int distabs(a-b)*tt;
28 if(map[a][b]dist)
29 map[a][b]map[b][a]dist;
30 }
31
32 void Dijkstra(){
33 int root0, p;
34 memset(vis, 0, sizeof(vis));
35 vis[0]1;
36 for(int i1; i99; i){
37 int minLenINF;
38 for(int j1; j99; j){
39 if(!vis[j] d[j] d[root]map[root][j]60)
40 d[j] d[root]map[root][j]60;
41 if(!vis[j] minLend[j]){
42 minLend[j];
43 pj;
44 }
45 }
46 if(minLenINF)
47 return ;
48 rootp;
49 vis[root]1;
50 }
51 }
52
53 int main(){
54 while(scanf(%d%d, n, k)!EOF){
55 memset(map, 0x3f, sizeof(map));
56 memset(d, 0x3f, sizeof(d));
57 d[0]0;
58 for(int i1; in; i)
59 scanf(%d, t[i]);
60 char ch;
61
62 for(int i1; in; i){
63 int cnt0;
64 while(1){
65 scanf(%d%c, lift[cnt], ch);
66 for(int j0; jcnt-1; j)
67 addEdge(lift[cnt-1], lift[j], t[i]);
68
69 if(ch\n)
70 break;
71 }
72 }
73
74 Dijkstra();
75
76 if(k0)
77 printf(0\n);
78 else if(d[k]!INF)
79 printf(%d\n, d[k]-60);
80 else printf(IMPOSSIBLE\n);
81 }
82 return 0;
83 } 转载于:https://www.cnblogs.com/hujunzheng/p/3900059.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921785.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!