国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

POJ1860 SPFA判斷正環

2019-11-06 06:25:47
字體:
來源:轉載
供稿:網友

題目大意:給定N種貨幣,某些貨幣之間可以相互兌換,現在給定一些兌換規則,問能否從某一種貨幣開始兌換,經過一些中間貨幣之后,最后兌換回這種貨幣,并且得到的錢比之前的多。

思路: 一種貨幣可以看成一個點。 一個點出發,最后回到自己時反而變大,說明題目中有正環。 所以,只要多設一個數組儲存有沒有點被松弛n次(即自己也被自己松弛)即可。 簡而言之,本體就是判斷“負環”。

/* Time:0ms memory:408k*/#include<cstdio>#include<cstring>using namespace std;#define N 105int n,m,s,vis[N],que[N*N];double v,dis[N],r[N][N],c[N][N];bool b[N];inline bool spfa(){ int hd=1,tl=1; while(hd<=tl) { int x=que[hd++]; b[x]=0; for(int i=1; i<=n; i++) { double k=(dis[x]-c[x][i])*r[x][i]; if(k>dis[i]) { dis[i]=k; if(!b[i]) { que[++tl]=i; b[i]=1; vis[i]++; if(vis[i]==n) return 1; } } } } return 0;}int main() { scanf("%d%d%d%lf",&n,&m,&s,&v); while(m--) { int a,b; scanf("%d%d",&a,&b); scanf("%lf%lf%lf%lf",&r[a][b],&c[a][b],&r[b][a],&c[b][a]); } dis[s]=v; que[1]=s; puts(spfa()?"YES":"NO");}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奉新县| 花垣县| 张掖市| 楚雄市| 德州市| 木里| 静乐县| 乐亭县| 中牟县| 兴业县| 永济市| 永定县| 河南省| 贺州市| 康马县| 内黄县| 海安县| 屏边| 陇川县| 吴堡县| 筠连县| 明溪县| 武邑县| 镇雄县| 阿鲁科尔沁旗| 莎车县| 梁平县| 右玉县| 枞阳县| 平果县| 雅江县| 福泉市| 昌江| 乌什县| 垫江县| 牡丹江市| 崇礼县| 增城市| 横峰县| 镇远县| 江都市|