ZOJ Problem Set - 1082 Stockbroker Grapevine
2011-10-10 17:43
309 查看
题意:
从一个人散布消息,可以同时散布给所有人消息,需要的最长的时间。然后求每个人散布给其他人的最长时间中的最小时间。输出最小时间的人和最小时间。
最短路径,Dijkstra算法。
在运用优先队列存储。
这题主要要理解好题意,不然一头雾水。
理解到了,模板题一道。直接套。
从一个人散布消息,可以同时散布给所有人消息,需要的最长的时间。然后求每个人散布给其他人的最长时间中的最小时间。输出最小时间的人和最小时间。
最短路径,Dijkstra算法。
在运用优先队列存储。
这题主要要理解好题意,不然一头雾水。
理解到了,模板题一道。直接套。
#include <iostream> #include <queue> #include <cstring> #define M 100000 using namespace std; struct Node { int num; int n; }node[101]; priority_queue<Node>q; priority_queue<Node>p; bool operator < (const Node &a,const Node &b) { if(a.num > b.num) return 1; else return 0; } int w[101][101],cot[101],snum; void init() { int i,j; for(i = 0;i < 101;i ++) for(j = 0;j < 101;j ++) w[i][j] = M; } void relax(int u,int v) { if(node[v].num >node[u].num + w[u][v]) node[v].num = node[u].num + w[u][v]; } void Dij() { int i; for(i = 1;i <= snum;i ++) if(cot[i] == 0) q.push(node[i]); int arr = q.top().n; for(i = 1;i <= snum;i ++) if(w[arr][i] != M) relax(arr,i); cot[arr] = 1; while(!q.empty()) q.pop(); } int main() { int n,i,j,u,v; Node maxi; while(cin>>snum&&snum!=0) { init(); for(i = 1;i <= snum;i ++) { cin>>n; for(j = 0;j < n;j ++) {cin>>u>>v; w[i][u] = v;} } for(i = 1;i <= snum;i ++) { memset(cot,0,sizeof(cot)); for(int k = 0;k < 101;k ++) {node[k].num = M;node[k].n = k;} node[i].num = 0; for(j = 1;j <= snum;j ++) { Dij(); } maxi.num = -1; for(j = 1;j <= snum;j ++) { if(j !=i) { if(node[j].num > maxi.num) { maxi.num = node[j].num; } } } maxi.n = i; p.push(maxi); } cout<<p.top().n<<" "<<p.top().num<<endl; while(!p.empty()) p.pop(); } return 0; }
相关文章推荐
- ZOJ Problem Set - 1082 Stockbroker Grapevine
- ZOJ 1082 Stockbroker Grapevine
- zoj 1082 Stockbroker Grapevine
- zoj 1082 Stockbroker Grapevine
- zoj 1082 Stockbroker Grapevine
- zoj 1082 - Stockbroker Grapevine
- ZOJ 1082 Stockbroker Grapevine 最短路
- ZOJ-1082-Stockbroker Grapevine(最短路径)
- zoj 1082 && poj 1125 && 南阳oj 426 Stockbroker Grapevine
- zoj 1082 Stockbroker Grapevine 最短路 Dijkstra
- zoj 1082 Stockbroker Grapevine(最短路)
- zoj1082 Stockbroker Grapevine
- zju 1082 Stockbroker Grapevine
- ZOJ Problem Set–1763 A Simple Question of Chemistry
- poj1125 Stockbroker Grapevine-最短路
- ZOJ Problem Set - 1009
- POJ 1125-Stockbroker Grapevine(最短路-含孤立点)
- ZOJ Problem Set - 1004
- POJ 1125:Stockbroker Grapevine
- ZOJ Problem Set - 3938 (模拟)