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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

poj 1860 拓扑。。

發(fā)布時(shí)間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poj 1860 拓扑。。 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考

你有一些古幣,現(xiàn)在你要用這些古幣去兌換成其他錢(qián)幣。這個(gè)城市里有N個(gè)兌換點(diǎn),每個(gè)兌換點(diǎn)包括:

A----錢(qián)幣A
B----錢(qián)幣B
Rab--A兌換為B的比例
Cab--A兌換為B的手續(xù)費(fèi)
Rba--B兌換為A的比例
Cba--B兌換為A的手續(xù)費(fèi)
現(xiàn)在你有編號(hào)為S的這種古幣,你將用這些古幣去進(jìn)行一系列的兌換,最終還是要兌換回古幣。你想知道能不能通過(guò)一系列兌換來(lái)增加自身的古幣。
N--錢(qián)幣的種類(lèi)總數(shù)(結(jié)點(diǎn)數(shù))
M--兌換點(diǎn)的數(shù)量(邊的條數(shù))
S--你的貨幣種類(lèi)標(biāo)識(shí)(起點(diǎn)&終點(diǎn))
V--你現(xiàn)在身上貨幣的數(shù)目 #include<algorithm> #include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<vector> #include<queue> #include<stack> #include<iomanip> #include<string> #include<climits> #include<cmath> #define MAXV 110 #define MAXE 110<<1 #define LL long long using namespace std; int n,m,start; float num; int vis[MAXV]; float money[MAXV]; int cnt[MAXV]; struct Edge {int to,next;float rate,cost; }; Edge edge[MAXE]; int index=1; int first[MAXV];void add(int u,int v,float rate,float cost) {edge[index].to=v;edge[index].rate=rate;edge[index].cost=cost;edge[index].next=first[u];first[u]=index++; } bool spfa() {memset(cnt,0,sizeof(cnt)),memset(money,0,sizeof(money)),memset(vis,0,sizeof(vis));queue<int>Q;Q.push(start);vis[start]=1;money[start]=num;while(Q.size()){int t=Q.front();Q.pop();vis[t]=0;for(int i=first[t];i;i=edge[i].next){int to=edge[i].to;float tmp=(money[t]-edge[i].cost)*edge[i].rate*1.0;if(money[to]<tmp){money[to]=tmp;if(!vis[to]){Q.push(to);vis[to]=1;}cnt[to]++;if(cnt[to]>n) // 某個(gè)結(jié)點(diǎn)迭代次數(shù)超過(guò)了n次,存在正權(quán)回路return true;}}}return false; }int main() {scanf("%d %d %d %f",&n,&m,&start,&num);int a,b;float r1,c1,r2,c2;memset(first,0,sizeof(first));while(m--){scanf("%d %d %f %f %f %f",&a,&b,&r1,&c1,&r2,&c2);add(a,b,r1,c1);add(b,a,r2,c2);}if(spfa())puts("YES");elseputs("NO");return 0; }hdu上待做: ?We have carefully selected several similar problems for you:?? 2647 ? 3333 ? 3339 ? 3341 ? 3336 ?

總結(jié)

以上是生活随笔為你收集整理的poj 1860 拓扑。。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。