首页 > 代码库 > poj1125(Stockbroker Grapevine)
poj1125(Stockbroker Grapevine)
题目大意:
题目会给你N个经纪人,样例给出的是第几个经纪人与其他经纪人之间的联系和散播需要的时间,问你从哪个经纪人开始传播是散发的谣言最快,以及算出所需要的时间,这里的时间是一条最短路径中所花费时间最少路径。如果存在某个经济人不在最短路中输出”disjoint“。(我没判断就过了,数据shui)
解题思路:
最短路径算法dijstra, 循环每一个经纪人,找出花费时间最少路径也就是题目要求的答案。
代码:
#include <algorithm>#include <iostream>#include <sstream>#include <cstdlib>#include <cstring>#include <cstdio>#include <string>#include <bitset>#include <vector>#include <queue>#include <stack>#include <cmath>#include <list>//#include <map>#include <set>using namespace std;/***************************************/#define ll long long#define int64 __int64/***************************************/const int INF = 0x7f7f7f7f;const double eps = 1e-8;const double PIE=acos(-1.0);const int d1x[]= {0,-1,0,1};const int d1y[]= {-1,0,1,0};const int d2x[]= {0,-1,0,1};const int d2y[]= {1,0,-1,0};const int fx[]= {-1,-1,-1,0,0,1,1,1};const int fy[]= {-1,0,1,-1,1,-1,0,1};/***************************************/void openfile(){ freopen("data.in","rb",stdin); freopen("data.out","wb",stdout);}/**********************华丽丽的分割线,以上为模板部分*****************/int map[500][500];int lowcost[500];int vis[500];int n;int ce;int maax;void dijstra(int sta){ int i,j,k=0; int cnt=0; int min; for(i=1; i<=n; i++) { lowcost[i]=map[sta][i]; vis[i]=0; } vis[sta]=1; // lowcost[sta]=0; for(i=1; i<n; i++) { min=INF; for(j=1; j<=n; j++) { if (!vis[j]&&lowcost[j]<min) { min=lowcost[j]; k=j; } } if (k) cnt++; if (cnt==n-1) if (min<maax) { maax=min; ce=sta; } vis[k]=1; for(j=1;j<=n;j++) if(!vis[j]&&lowcost[j]>lowcost[k]+map[k][j]) lowcost[j]=lowcost[k]+map[k][j]; }}int main(){ while(scanf("%d",&n)&&n) { int i,j; for(i=0; i<500; i++) for(j=0; j<500; j++) map[i][j]=INF; int a; int u,cost; for(i=1; i<=n; i++) { scanf("%d",&a); for(j=0; j<a; j++) { scanf("%d%d",&u,&cost); map[i][u]=cost; } } maax=INF; for(i=1; i<=n; i++) dijstra(i); printf("%d %d\n",ce,maax); } return 0;}//没有判断disjoint 。可以自己加上。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。