[USACO09JAN]最好的地方Best Spot

Posted skylee的OI博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[USACO09JAN]最好的地方Best Spot相关的知识,希望对你有一定的参考价值。

OJ题号:洛谷2935

思路:Floyd

 1 #pragma GCC optimize ("O3")
 2 #include<cstdio>
 3 #include<cctype>
 4 #define inf 0x7fffffff>>1
 5 inline int min(const int a,const int b) {
 6     return a<b?a:b;
 7 }
 8 inline int getint() {
 9     int ch;
10     while(!isdigit(ch=getchar()));
11     int x=ch^0;
12     while(isdigit(ch=getchar())) x=((x+(x<<2))<<1)+(ch^0);
13     return x;
14 }
15 int main() {
16     int p=getint(),F=getint(),C=getint();
17     int f[F];
18     for(int i=0;i<F;i++) {
19         f[i]=getint();
20     }
21     int c[p+1][p+1];
22     for(int i=1;i<=p;i++) {
23         for(int j=1;j<=p;j++) {
24             c[i][j]=(i==j)?0:inf;
25         }
26     }
27     for(int i=0;i<C;i++) {
28         int a=getint(),b=getint(),t=getint();
29         c[b][a]=c[a][b]=t;
30     }
31     for(int k=1;k<=p;k++) {
32         for(int i=1;i<=p;i++) {
33             for(int j=1;j<=p;j++) {
34                 c[i][j]=min(c[i][j],c[i][k]+c[k][j]);
35             }
36         }
37     }
38     int ans,mmin=inf;
39     for(int i=1;i<=p;i++) {
40         int tmp=0;
41         for(int j=0;j<F;j++) {
42             tmp+=c[i][f[j]];
43         }
44         if(tmp<mmin) {
45             ans=i;
46             mmin=tmp;
47         }
48     }
49     printf("%d\n",ans);
50     return 0;
51 }

 

以上是关于[USACO09JAN]最好的地方Best Spot的主要内容,如果未能解决你的问题,请参考以下文章

[USACO09JAN]最好的地方Best Spot

P2937 [USACO09JAN]Laserphones S

P3015 [USACO11FEB]最好的括号Best Parenthesis

洛谷 P3015 [USACO11FEB]最好的括号Best Parenthesis

[USACO09JAN]安全出行Safe Travel

[USACO09JAN]全流Total Flow