日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Floyed】小萨的烦恼(ssl 1624)

發布時間:2023/12/3 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Floyed】小萨的烦恼(ssl 1624) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小薩的煩惱

ssl 1624

題目大意:

一個無向圖,可以使其中一條道路的值除以2,求兩個點之間的最短路

原題:

Description

圣誕節又要到了!小薩希望和自己心儀的MM一起出去度過一個浪漫的的圣誕節。他進行了詳盡的準備,找到了N個很適合他們去約會的好地方,但無奈小薩和他的MM都是初三學校,晚上必須回學校上晚修,沒有足夠的時間讓他們走遍每一個地方。迫于無奈,小薩選擇了一個最合適的地方S。小薩打算和他的MM一起步行到那個地方,那樣他們就有很多時間來聊天玩樂,但是無奈時間有限,小薩決定坐公共汽車過去。然而,小薩發覺,自己的錢只夠買一張公共汽車車票了!小薩該怎么辦呢?他找到了你……

【題目描述】

小薩將給出一張地圖,它可以看做一個有N(N<=100)個結點的圖。這張地圖有N個公共汽車站,小薩只可以在這N個汽車站上公共汽車。有些車站之間存在一條雙向通路,無論是公共汽車還是小薩,都只能走這些通路。若兩個車站之間的距離為d,步行所需要的時間為2*d秒,坐公共汽車所需要的時間為d秒。小薩他們只有T秒的時間,他希望你求出他和他的MM出去約會后能否及時趕回來,若不能,則輸出“You are day dreaming!”,否則輸出他們所需要花費的最少時間。
注意:一張公共汽車車票可以使用兩次(只可以搭乘同一輛公共汽車),即可以認為小薩去約會地點的時間和回來的時間相等。

Input

第一行有三個整數N、T、S
接下來是一個N*N的鄰接矩陣。兩兩車站之間的距離不超過10^9。A[I,j]為0表示I和J車站不連通。

Output

若小薩他們不能在限定時間內趕回學校,那么輸出“You are day dreaming!”(不包括引號)
否則,輸出一個整數,為他們所需要花費的最少時間。

Sample Input

4 5 4
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0

Sample Output

2

Hint

【數據范圍】

20%的數據:N<=10
100%的數據:N<=70 T<=10^9

解題思路:

這道題很可能想到先找一條最短路,再用貪心的想法來找一條路,但遇到下圖時就會先選1-2-3,折半后就是3+4=7,但選1-2折半后就是6,所以以上想法行不通

我們可以先打一個Floyed,然后枚舉每一條邊來折半,然后分別連接起點和重點再求最小值就行了

代碼:

#include<cstdio> #include<iostream> #include<cstring> using namespace std; int n,s; long long t,ans,a[105][105],b[105][105]; long long minn(long long aa,long long bb) {if (aa<bb) return aa;return bb; } int main() {scanf("%d %lld %d",&n,&t,&s);for (int i=1;i<=n;++i)for (int j=1;j<=n;++j){scanf("%lld",&a[i][j]);//輸入if (!a[i][j]) a[i][j]=1<<30;//不連通if (i==j) a[i][j]=0;//同一個點b[i][j]=a[i][j]*2;//步行}for (int k=1;k<=n;++k)for (int i=1;i<=n;++i)for (int j=1;j<=n;++j)if (k!=i&&k!=j&&i!=j)b[i][j]=minn(b[i][j],b[i][k]+b[k][j]);//Floyedans=1<<30;//預處理for (int i=1;i<=n;++i)for (int j=1;j<=n;++j)ans=minn(ans,a[i][j]+b[1][i]+b[j][s]);//枚舉每一條邊來折半,然后線的兩邊分別連接起點和終點if (ans*2>t) printf("You are day dreaming!");//超時了else printf("%lld",ans*2);//輸出 }

總結

以上是生活随笔為你收集整理的【Floyed】小萨的烦恼(ssl 1624)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。