【POJ 1125】Stockbroker Grapevine
id=1125">【POJ 1125】Stockbroker Grapevine
最短路 只是这题数据非常水。
。
主要想大牛们试试南阳OJ同题 链接例如以下:
http://acm.nyist.net/JudgeOnline/talking.php?pid=426&page=2
数据增大非常多 用到非常多东西才干过 (弱没过,。。
这题就是求最短路寻找全部通路中最大权的最小值外加考验英语水平……
Floyd 208K 0MS 1162B
#include
using namespace std;
int dis[111][111],n;
void Floyd()
{
int i,j,k,tmax,mmax,f;
for(k = 1; k <= n; ++k)
for(i = 1; i <= n; ++i)
for(j = 1; j <= n; ++j)
if(dis[i][j] > dis[i][k] + dis[k][j])
dis[i][j] = dis[i][k] + dis[k][j];
mmax = INF;
for(i = 1; i <= n; ++i)
{
f = 1;
tmax = 0;
for(j = 1; j <= n; ++j)
{
if(i == j) continue;
if(dis[i][j] == INF) f = 0;
tmax = max(tmax,dis[i][j]);
}
if(f && tmax < mmax)
{
k = i;
mmax = tmax;
}
}
if(mmax != INF) printf("%d %d\n",k,mmax);
else puts("disjoint");
}
int main()
{
int i,k,v;
while(~scanf("%d",&n) && n)
{
memset(dis,INF,sizeof(dis));
for(i = 1; i <= n; ++i)
{
scanf("%d",&k);
while(k--)
{
scanf("%d",&v);
scanf("%d",&dis[i][v]);
}
}
Floyd();
}
return 0;
}
Dijkstra 168K 0MS 1491B
#include
using namespace std;
typedef struct Edge
{
int v,w,next;
}Edge;
Edge eg[11111];
int head[111],dis[111],n,tp;
bool vis[111];
int Dijkstra(int u)
{
memset(dis,INF,sizeof(dis));
memset(vis,0,sizeof(vis));
dis[u] = 0;
int m,p,i,j;
for(i = 1; i <= n; ++i)
{
p = -1;
m = INF;
for(j = 1; j <= n; ++j)
{
if(!vis[j] && dis[j] < m)
{
p = j;
m = dis[j];
}
}
if(i == n || p == -1) break;
vis[p] = 1;
for(j = head[p]; j != -1; j = eg[j].next)
{
if(!vis[eg[j].v] && dis[eg[j].v] > dis[p] + eg[j].w)
dis[eg[j].v] = dis[p] + eg[j].w;
}
}
if(p == -1) return INF;
return dis[p];
}
int main()
{
int i,k,m,t;
while(~scanf("%d",&n) && n)
{
m = INF;
tp = 0;
memset(head,-1,sizeof(head));
for(i = 1; i <= n; ++i)
{
scanf("%d",&k);
while(k--)
{
scanf("%d %d",&eg[tp].v,&eg[tp].w);
eg[tp].next = head[i];
head[i] = tp++;
}
}
k = 0;
for(i = 1; i <= n; ++i)
{
t = Dijkstra(i);
if(t < m)
{
k = i;
m = t;
}
}
if(k)
printf("%d %d\n",k,m);
else puts("disjoint");
}
return 0;
}
SPFA 180K 0MS 1668B
#include
using namespace std;
typedef struct Edge
{
int v,w,next;
}Edge;
Edge eg[11111];
int head[111],dis[111],n,tp;
bool vis[111];
int SPFA(int u)
{
memset(dis,INF,sizeof(dis));
memset(vis,0,sizeof(vis));
dis[u] = 0;
queue <int> q;
q.push(u);
int v,w,i,p,m;
while(!q.empty())
{
p = q.front();
q.pop();
vis[u] = 0;
for(i = head[p]; i != -1; i = eg[i].next)
{
v = eg[i].v;
w = eg[i].w;
if(dis[v] > dis[p] + w)
{
dis[v] = dis[p] + w;
if(!vis[v])
{
vis[v] = 1;
q.push(v);
}
}
}
}
m = 0;
for(i = 1; i <= n; ++i)
{
if(i == u) continue;
if(dis[i] == INF) return INF;
m = max(m,dis[i]);
}
return m;
}
int main()
{
int i,k,m,t;
while(~scanf("%d",&n) && n)
{
m = INF;
tp = 0;
memset(head,-1,sizeof(head));
for(i = 1; i <= n; ++i)
{
scanf("%d",&k);
while(k--)
{
scanf("%d %d",&eg[tp].v,&eg[tp].w);
eg[tp].next = head[i];
head[i] = tp++;
}
}
k = 0;
for(i = 1; i <= n; ++i)
{
t = SPFA(i);
if(t < m)
{
k = i;
m = t;
}
}
if(k)
printf("%d %d\n",k,m);
else puts("disjoint");
}
return 0;
}
【POJ 1125】Stockbroker Grapevine的更多相关文章
- POJ 1125:Stockbroker Grapevine
Stockbroker Grapevine Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d & %I64 ...
- bzoj 2295: 【POJ Challenge】我爱你啊
2295: [POJ Challenge]我爱你啊 Time Limit: 1 Sec Memory Limit: 128 MB Description ftiasch是个十分受女生欢迎的同学,所以 ...
- 【链表】BZOJ 2288: 【POJ Challenge】生日礼物
2288: [POJ Challenge]生日礼物 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 382 Solved: 111[Submit][S ...
- BZOJ2288: 【POJ Challenge】生日礼物
2288: [POJ Challenge]生日礼物 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 284 Solved: 82[Submit][St ...
- BZOJ2293: 【POJ Challenge】吉他英雄
2293: [POJ Challenge]吉他英雄 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 80 Solved: 59[Submit][Stat ...
- BZOJ2287: 【POJ Challenge】消失之物
2287: [POJ Challenge]消失之物 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 254 Solved: 140[Submit][S ...
- BZOJ2295: 【POJ Challenge】我爱你啊
2295: [POJ Challenge]我爱你啊 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 126 Solved: 90[Submit][Sta ...
- BZOJ2296: 【POJ Challenge】随机种子
2296: [POJ Challenge]随机种子 Time Limit: 1 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 114 Solv ...
- BZOJ2292: 【POJ Challenge 】永远挑战
2292: [POJ Challenge ]永远挑战 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 513 Solved: 201[Submit][ ...
随机推荐
- 一个简单的flask程序
初始化 所有Flask程序都必须创建一个程序实例. 程序实例是Flask类的对象,经常使用下述代码创建: from flask import Flask app = Flask(__name__) F ...
- java集合类深入分析之Queue篇(Q,DQ)
简介 Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约.实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现 ...
- UIButton 设置字体大小
btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlS ...
- Jquery Mobile 记录
使用的是C#语言,.Net+Jquery Mobile 框架开发 1.使用水平组切换操作 <fieldset id="Tfdset1" data-role="con ...
- 在.NET中使用iTextSharp创建/读取PDF报告: Part I [翻译]
原文地址:Create/Read Advance PDF Report using iTextSharp in C# .NET: Part I By Debopam Pal, 27 Nov 20 ...
- TCP/IP详解之:IGMP和DNS
第13章 IGMP:Internet组管理协议 IGMP用于支持主机和路由器进行多播: IGMP是IP层的一部分,IGMP报文通过IP数据报进行传输: IGMP报文长度为固定8 Byte: 报文中,I ...
- Linux系统学习笔记:文件I/O
Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...
- git工作区和暂存区
工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区: 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区, ...
- linux下的gdb调试工具--内存调试
接着上一节的代码,在while(1)的循环里面增加代码:sum=0 #include <stdio.h> int main(void) { int sum = 0, i = 0; char ...
- Repeater控件实现数据绑定,并实现分页效果
前台显示代码 <pre name="code" class="csharp"><asp:Repeater ID="Repeater1 ...