NYNU_省赛选拔题(5)

题目描述

P 的一家要出去旅游,买了当地的地图,发现各地分别由各个景点,若 P 想使家人分队去景点,尽快到达各个景点(必须所有景点),并且最终所有家人都到达 M 所在的景点.   
你用程序告诉 P 最少需要多少天才能完成这次旅游。假设 P 的家人足够多,各分队速度一样.

输入

首先是一个正整数T,接下来是T组测试数据,每组数据第一行是两个整数n,m(2=<n<=1000,1=<m<=10000),分别表示景点数量和总边数,山寨编号0,1,2,3…n-1
接下来m行,每行三个整数i,j,k(0=<i,j<n,k<=10^4),分别表示景点i和景点j之间有一条路,在这条路上需要k天,接下来一行两个整数s,t(0<=s,t<=n-1),分别表示P所在的起点和M所在终点的编号

输出

对每组数据输出一个整数,表示P到达所有山寨并汇聚到M所在景点所需要的最少天数,每个输出独占一行

样例输入

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

样例输出

7
13

求出所有点到起点,终点最短路权值,然后相加取最大,dijkstra算法
 1 # include <iostream>
 2 # include <cstdio>
 3 # include <cstring>
 4 # include <algorithm>
 5 # include <cmath>
 6 using namespace std;
 7 #define INF 0x3f3f3f3f
 8 #define Max 1001
 9 int cost[Max][Max];
10 int d[Max];
11 bool used[Max];
12 void dijkstra(int n,int s)
13 {
14     memset(d,INF,sizeof(d));
15     memset(used,false,sizeof(used));
16     d[s]=0;
17     while(true)
18     {
19         int v=-1;
20         for(int u=0;u<n;u++)
21             if(!used[u]&&(v==-1||d[u]<d[v]))
22                 v=u;
23         if(v==-1)
24             break;
25         used[v]=true;
26         for(int u=0;u<n;u++)
27         {
28             d[u]=min(d[u],d[v]+cost[u][v]);
29         }
30     }
31 }
32
33 int main()
34 {
35     int T,m,n,k,i,j;
36     int from,to,Cost,f,t;
37     cin>>T;
38     while(T--)
39     {
40         memset(cost,INF,sizeof(cost));
41         cin>>n>>m;
42         for(i=0;i<m;i++)
43         {
44             cin>>from>>to>>Cost;
45             cost[from][to]=cost[to][from]=Cost;
46         }
47         cin>>f>>t;
48         dijkstra(n,f);
49         int Time[Max],tim=0;
50         memset(Time,0,sizeof(Time));
51         for(i=0;i<n;i++)
52             Time[i]=d[i];
53         dijkstra(n,t);
54         for(i=0;i<n;i++)
55         {
56             Time[i]+=d[i];
57             tim=max(tim,Time[i]);
58         }
59         cout<<tim<<endl;
60
61     }
62 }
时间: 2024-10-07 07:36:46

NYNU_省赛选拔题(5)的相关文章

NYNU_省赛选拔题(7)

题目描述 In computer science, a binary tree is a tree data structure in which each node has at most two children. Consider an infinite full binary tree (each node has two children except the leaf nodes) defined as follows. For a node labelled v its left

NYNU_省赛选拔题(6)

题目描述 有一天,小米找到了一个藏宝的迷宫地图,迷宫在一个沙漠里有,迷宫里面有许多宝藏.迷宫里可能有N个藏宝地点,用1到K标记.藏宝地点之间最多有一条通路相连.标记1为迷宫的进出口. 他已经知道其中K(1<=K<=N)个不同的地点真的藏有宝物.小米决定让他的机器人米多奇去探险.迷宫中的通路不是平坦的,到处都是陷阱.假设每条通路都有一个危险度,其值与通过此路的载重量成正比.米多奇在经过某个藏宝地点时可能会拿走宝物.但它每拿走一个藏宝地点的宝物后,它的载重量就会增加w. 当机器人米多奇进入迷宫时,

20160423/24省赛选拔总结

最近一直在重温c语言,没有时间总结比赛,眼看还有一年就要准备实习了,大部分精力都放在为找工作做准备的阶段,没有太多精力刷题,能做的只是总结每一场训练赛中的失误与不足 省赛选拔虽然选上了,但还是很不顺利,,,,,,,,,,,我和小王去年国赛因为题意的问题错失了一枚铜牌,这次再次因为题意翻译出了问题卡了一场比赛:: 第一天:::刚发下来,我们3个人还算很准确,分别翻译A,B,C, 我先把B题翻译出来了,明确了思路,我直接上去敲B题,一遍AC过,我昨晚,学长翻译完了A题,并且有了思路,确定了用状压DP

acm省赛选拔组队赛经验谈

省赛组队赛已经进行5场了,过半了. 从曾经的不会组队到如今逐渐磨合,尽管每次都有遗憾,可是我认为我们一直在进步.有些失误是要记录下来下次不能再犯的! 经验: 1:上场開始一定要有人(英语能力和算法综合能力较强者)读全然部题目,对全部题目的难易程度做一个大概推断,以确定做题顺序,不要在比赛完了发现有水题没有看! 2:对于一个自己没有100%把握AC的题目,最好拉一个队友讲一下思路,假设队友认可了再写程序,防止一道题目花费了一个多小时代码敲到快完了发现思路是不可行的,并且这样在你一次不能AC的情况下

sdut 2413:n a^o7 !(第三届山东省省赛原题,水题,字符串处理)

n a^o7 ! Time Limit: 1000MS Memory limit: 65536K 题目描述 All brave and intelligent fighters, next you will step into a distinctive battleground which is full of sweet and happiness. If you want to win the battle, you must do warm-up according to my inst

2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告

2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh童鞋的提醒. 勘误2:第7题在推断连通的时候条件写错了,后两个if条件中是应该是<=12 落了一个等于号.正确答案应为116. 1.煤球数目 有一堆煤球.堆成三角棱锥形.详细: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形). -. 假设一共

Sdut 2108 Alice and Bob(数学题)(山东省ACM第四届省赛D题)

题目地址:sdut 2608 Alice and Bob Alice and Bob Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Alice and Bob like playing games very much.Today, they introduce a new game. There is a polynomial like this: (a0*x^(2^0)+1) * (a1 * x^(2^1)+1)*....

sdut 2603 Rescue The Princess(算是解析几何吧)(山东省第四届ACM省赛A题)

题目地址:sdut 2603 Rescue The Princess Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Several days ago, a beast caught a beautiful princess and the princess was put in prison. To rescue the princess, a prince who wanted to marry the princess

CSU 1425 NUDT校赛 I题 Prime Summation

这个题本来有希望在比赛里面出了的 当时也想着用递推 因为后面的数明显是由前面的推过来的 但是在计算的时候 因为判重的问题 ...很无语.我打算用一个tot[i]来存i的总种树,tot[i]+=tot[j]//j为可以由j推到i的一系列数,但这样是不对的,会产生大量重复计算... 看了下标程才发现要用二维来计算出种类总数,f[i][j]+=sum(f[i-j][k]) 表示在推i数的时候,第一个素数为j的种类数,注意j一定为素数,而且k不能大于j...标程里面处理的比较简练,就学了下他的写法. 至