NYOJ 973 天下第一(SPFA判環)

2021-07-22 21:49:39 字數 1503 閱讀 6020

天下第一

時間限制:1000 ms | 記憶體限制:65535 kb

難度:3

描述 ac_grazy一直對江湖羨慕不已,嚮往著大碗吃肉大碗喝酒的豪情,但是「人在江湖漂,怎能

不挨刀」,」人在江湖身不由己」,如果自己的武功太差,在江湖會死的很慘,但是ac_grazy沒有

武功秘籍練不了絕世武功.有道是「山重水複疑無路,柳暗花明又一村」,在ac_grazy家裡面

竟然藏著一本書,書名竟然叫做【超級外掛程式】,竟然能在各種武功之間進行轉化,據說是他爺

爺的爺爺的…爺爺傳下來的…

閒著無事便拿來看看,只看一眼便再也停不下了,只見上面寫著「縱橫武林打遍天下無敵手武功心法秘籍收錄」.

翻開第一篇一看竟然是【降龍十八掌】…

心法只是乙個修練武功的途徑,重要的是真氣的多少,於是他便想利用外掛程式讓武功之間進行轉

化,來讓真氣無限增加,但是這個心法只能按照順序轉化,我們分別用 1號和2號來代替兩種** 當然轉化會有一定的轉化率f

比如1 0.5 2 便是把 1的一半真氣轉化給2 ,為了簡化問題,我們每次都從1號秘籍開始進行轉化,如果其中乙個秘籍轉化斷了,那麼以後的**就不能轉換。

輸入 輸入:首先輸入乙個數 t(t<=20)表示t組資料

然後輸入兩個數n(2<=n<=500)和m(1=示有n種秘籍,隨後的m行分別輸入

秘籍u(n>=u>0) 轉化率 f (0模板來一發

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn=505;//點的數量

const

int inf=0x3f3f3f3f;

struct node

*list[maxn];//鍊錶模擬鄰接表

void add_edge(int u,int v,double w)

void init_list(int n)//傳入點的數量

}}double dis[maxn];//距離

int vis[maxn];//點是否在佇列中

int num[maxn];//點入隊次數

int n;//點的數量

int m;//邊的數量

bool spfa(int star)//求star到各點最短路

dis[star]=1.0;//自己到自己的距離初始化為0

vis[star]=1;

num[star]++;

queue

q;q.push(star);

while(!q.empty())}}

}return

false;

}int main()

spfa(1)?printf("yes\n"):printf("no\n");

init_list(n);

}return

0;}

nyoj973天下第一

天下第一 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述ac grazy一直對江湖羨慕不已,嚮往著大碗吃肉大碗喝酒的豪情,但是 人在江湖漂,怎能 不挨刀 人在江湖身不由己 如果自己的武功太差,在江湖會死的很慘,但是ac grazy沒有 武功秘籍練不了絕世武功.有道是 山重水複...

nyoj 973 天下第一(SPFA判斷負環)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 ac grazy一直對江湖羨慕不已,嚮往著大碗吃肉大碗喝酒的豪情,但是 人在江湖漂,怎能 不挨刀 人在江湖身不由己 如果自己的武功太差,在江湖會死的很慘,但是ac grazy沒有 武功秘籍練不了絕世武功.有道是 山重水複疑無路,...

NYOJ973天下第一 最長路判環

題目鏈結 注意 如果可以無限 增加真氣輸出yes否則輸出no 我直接忽略了這一點,以為只要能一直流傳就可以了,只要這個圖是個強連通圖就行了,以為轉化率是沒用的資料。第一次是提交也不提示wc,一直提示的runtime我也找不到 錯了。最後看了下同學的才發現我理解錯題意了,學到了新知識,用spfa判環,...