腾讯大战360【SPFA】
SSLOJ 1295 騰訊大戰(zhàn)360
- Description--
- Input--
- Output--
- Sample Input--
- Sample Output--
- 說明--
- 解題思路--
- 代碼--
Description–
2010年11月3日,是一個難忘的日子。 騰訊發(fā)布消息:存360則,不留QQ。留QQ,則須卸360。 360則表示360與QQ可以共存。 這也就標(biāo)志著騰訊與360的大戰(zhàn)就此開始!
現(xiàn)在,騰訊與360由于身處異地,非常迫切地想在最短的時間內(nèi)相遇,然后干一架。但是由于雙方的技術(shù)員都在努力地編程序想干掉對方,所以他們希望你來幫他們找到一個最好的方案使得相遇的時間最短。
在此我們定義“相遇”為:兩個人皆在同一個有編號的城市上就可以了,并且這兩個人均可以站在原地等另外一個人。也就是說,在這里我們不考慮兩人在路中間相遇。
Input–
輸入數(shù)據(jù)第一行:N和M(用空格隔開) 表示這是一個N*N的圖并且有M條邊,第二行到第M+1行 為這個圖的詳細(xì)信息。
每行共有被空格隔開的三個數(shù):a b c。表示編號為a的城市到編號為b的城市
有一個雙向邊,并且要過這條雙向邊所需要花費(fèi)的時間為c。
最后一行有兩個數(shù):S和T,S表示騰訊所處的城市(也就是深圳),T表示360所處的
城市(也就是北京)
Output–
輸出只有一行,D,表示二者“相遇”的最短時間。當(dāng)然,如果無法相遇則輸出“Peace!”
Sample Input–
3 3
1 2 1
2 3 1
1 3 1
1 3
Sample Output–
1
說明–
數(shù)據(jù)規(guī)模
對于%20的數(shù)據(jù) N<=10
對于%40的數(shù)據(jù) N<=50
對于%100的數(shù)據(jù) N<=300 a[i]<=300
解題思路–
正著用一次SPFA,反著再用一次,再在最大值中找最小值。
代碼–
#include<iostream> #include<cstring> #include<cstdio> using namespace std; struct emm {int x,y,next; }f[50010]; bool pd[5010]; int dis[5010],dis2[5010],dl[15010],ls[5010]; int n,m,ll,lr,le,tt,s,t,u,o,l,r=1,ans; int main() {scanf("%d%d",&n,&m);for (int i=1;i<=m;++i){scanf("%d%d%d",&ll,&lr,&le);f[++tt].x=lr; f[tt].y=le; f[tt].next=ls[ll]; ls[ll]=tt;//鄰接表f[++tt].x=ll; f[tt].y=le; f[tt].next=ls[lr]; ls[lr]=tt;//}scanf("%d%d",&s,&t);memset(dis,0x7f,sizeof(dis));dis[s]=0,dl[1]=s,pd[s]=true;while (l<r)//SPFA.1{l++,u=dl[l];for (int i=ls[u];i;i=f[i].next)if (dis[o=f[i].x]>dis[u]+f[i].y){dis[o]=dis[u]+f[i].y;if (!pd[o]){pd[o]=true;dl[++r]=o;}}pd[u]=false;}memset(dis2,0x7f,sizeof(dis2));dis2[t]=0,dl[1]=t,pd[t]=true,l=0,r=1;while (l<r)//SPFA.2{l++,u=dl[l];for (int i=ls[u];i;i=f[i].next)if (dis2[o=f[i].x]>dis2[u]+f[i].y){dis2[o]=dis2[u]+f[i].y;if (!pd[o]){pd[o]=true;dl[++r]=o;}}pd[u]=false;}ans=dis[0];for (int i=1;i<=n;++i)ans=min(ans,max(dis[i],dis2[i]));//在最大值中找最小值if(ans!=dis[0]) printf("%d",ans);else printf("Peace!");return 0; }總結(jié)
以上是生活随笔為你收集整理的腾讯大战360【SPFA】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是光纤收发器,光纤收发器分类,光纤收
- 下一篇: bzoj1149: [CTSC2007]