HDU 5137 How Many Maos Does the Guanxi Worth 最短路 dijkstra
How Many Maos Does the Guanxi Worth
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 303 Accepted Submission(s): 93
"relationship" or "contact". Guanxi can be based on friendship, but also
can be built on money. So Chinese often say "I don't have one mao (0.1
RMB) guanxi with you." or "The guanxi between them is naked money
guanxi." It is said that the Chinese society is a guanxi society, so you
can see guanxi plays a very important role in many things.
Here is an example. In many cities in China, the government prohibit the
middle school entrance examinations in order to relief studying burden
of primary school students. Because there is no clear and strict
standard of entrance, someone may make their children enter good middle
schools through guanxis. Boss Liu wants to send his kid to a middle
school by guanxi this year. So he find out his guanxi net. Boss Liu's
guanxi net consists of N people including Boss Liu and the schoolmaster.
In this net, two persons who has a guanxi between them can help each
other. Because Boss Liu is a big money(In Chinese English, A "big money"
means one who has a lot of money) and has little friends, his guanxi
net is a naked money guanxi net -- it means that if there is a guanxi
between A and B and A helps B, A must get paid. Through his guanxi net,
Boss Liu may ask A to help him, then A may ask B for help, and then B
may ask C for help ...... If the request finally reaches the
schoolmaster, Boss Liu's kid will be accepted by the middle school. Of
course, all helpers including the schoolmaster are paid by Boss Liu.
You hate Boss Liu and you want to undermine Boss Liu's plan. All you
can do is to persuade ONE person in Boss Liu's guanxi net to reject any
request. This person can be any one, but can't be Boss Liu or the
schoolmaster. If you can't make Boss Liu fail, you want Boss Liu to
spend as much money as possible. You should figure out that after you
have done your best, how much at least must Boss Liu spend to get what
he wants. Please note that if you do nothing, Boss Liu will definitely
succeed.
For each test case:
The first line contains two integers N and M. N means that there are N
people in Boss Liu's guanxi net. They are numbered from 1 to N. Boss
Liu is No. 1 and the schoolmaster is No. N. M means that there are M
guanxis in Boss Liu's guanxi net. (3 <=N <= 30, 3 <= M <=
1000)
Then M lines follow. Each line contains three integers
A, B and C, meaning that there is a guanxi between A and B, and if A
asks B or B asks A for help, the helper will be paid C RMB by Boss Liu.
The input ends with N = 0 and M = 0.
It's guaranteed that Boss Liu's request can reach the schoolmaster if you do not try to undermine his plan.
after you have done your best. If Boss Liu will fail to send his kid to
the middle school, print "Inf" instead.
1 2 3
1 3 7
1 4 50
2 3 4
3 4 2
3 2
1 2 30
2 3 10
0 0
Inf
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
const int inf = 0x3f3f3f3f;
int dis[],map[][];
int vis[];
int n,m;
int dij(int x,int y)
{
for(int i=; i<=n; i++)
dis[i]=map[x][i];
memset(vis,,sizeof(vis));
vis[x]=;
dis[x]=; //注意这个、开始没注意到、
int k=x;
for(int i=; i<n; i++)
{
int mmax=inf;
for(int j=; j<=n; j++) //每个的最短
{
if(!vis[j]&&dis[j]<mmax)
{
mmax=dis[j];
k=j;
}
}
vis[k]=;
for(int j=; j<=n; j++) //更新
{
if(!vis[j]&&dis[j]>dis[k]+map[k][j])
dis[j]=dis[k]+map[k][j];
}
}
return dis[y];
}
int css[];
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n== && m==)
break;
int a,b,v,d,f,num;
for(int i=; i<=n; i++)
for(int j=; j<=n; j++)
map[i][j]=map[j][i]=inf;
for(int i=; i<m; i++)
{
cin>>a>>b>>v;
if(map[a][b]>v)
map[a][b]=map[b][a]=v;
}
int ans = ;
for(int i=;i<n;i++)
{
for(int j=;j<=n;j++)
{
css[j] = map[i][j];
map[i][j] = map[j][i] = inf;
}
ans = max(ans,dij(,n));
for(int j=;j<=n;j++)
{
map[i][j] = map[j][i] = css[j];
}
}
if(ans==inf)
puts("Inf");
else
printf("%d\n",ans);
}
return ;
}
HDU 5137 How Many Maos Does the Guanxi Worth 最短路 dijkstra的更多相关文章
- hdu 5137 How Many Maos Does the Guanxi Worth 最短路 spfa
How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/5 ...
- HDU 5137 How Many Maos Does the Guanxi Worth
How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/5120 ...
- hdoj 5137 How Many Maos Does the Guanxi Worth【最短路枚举+删边】
How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/5 ...
- (hdoj 5137 floyd)How Many Maos Does the Guanxi Worth
How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/5 ...
- HDU5137 How Many Maos Does the Guanxi Worth(枚举+dijkstra)
How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/5 ...
- How Many Maos Does the Guanxi Worth
How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/5 ...
- 杭电5137How Many Maos Does the Guanxi Worth
How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/5 ...
- ACM学习历程——HDU5137 How Many Maos Does the Guanxi Worth(14广州10题)(单源最短路)
Problem Description "Guanxi" is a very important word in Chinese. It kind of means &quo ...
- hdu5137 How Many Maos Does the Guanxi Worth(单源最短路径)
题目链接:pid=5137">点击打开链接 题目描写叙述:如今有一张关系网.网中有n个结点标号为1-n.有m个关系,每一个关系之间有一个权值.问从2-n-1中随意去掉一个结点之后,从1 ...
随机推荐
- UBIFS文件系统简介 与 利用mkfs.ubifs和ubinize两个工具制作UBI镜像 (完整理解版本)
UBI文件系统简介 在linux-2.6.27以前,谈到Flash文件系统,大家很多时候多会想到cramfs.jffs2.yaffs2等文件系统. 它们也都是基于文件系 统+mtd+flash设备的架 ...
- sqlite3 的insert记录项思路
sqlite3 的insert记录项思路 1.组合一个insert的sql语句 2.判断是否需要立即执行,若不是立刻执行的语句,则插入到待处理的链表中,供后续事务处理时提交.必须有一个专门线程来对事务 ...
- mysql状态查看 QPS/TPS/缓存命中率查看【转】
运行中的mysql状态查看 对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态. (1)QPS(每秒Query量) QPS = Questions(or Queries ...
- Python3 item系列
一.前言 #在python中一切皆对象 ''' 创建了一个dict实例-->dic就是dict的实例对象 我们通过dic['k1']可以得到k1所对应的值 那么我们自定义一个类,可不可以使用对象 ...
- RabbitMQ--Publish/Subscribe(五)
上篇文章中,我们实现了不同consumer接收不同级别的日志,这篇文章中,不以日志级别,使用不同日志来源.比如kernel.*.*.critical. 这就要使用topic exchange完成了.将 ...
- angular架构
angular架构包括以下部分: 1.模块 2.组件 3.模板 4.元数据 5.数据绑定 6.指令 7.服务 8.依赖注入 9.动画 10.变更检测 11.事件 12.表单 13.HTTP 14.生命 ...
- 数据库-mysql索引
MySQL 索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索 ...
- UFLDL 教程学习笔记(二)
课程链接:http://ufldl.stanford.edu/tutorial/supervised/LogisticRegression/ 这一节主要讲的是梯度的概念,在实验部分,比较之前的线性回归 ...
- linux下快速安装emacs方法
背景 在公司工作的时候经常需要在很多服务器之间切换,而公司的服务器上一般都没emacs,因此总结一下快速安装emacs的方法. 最简单的是直接使用yum安装,但是有两个问题,一个是有的生产服务器直接没 ...
- java 内部类可以被覆盖吗
如果创建了一个内部类,然后继承其外围类并重新定义内部类时,"覆盖"内部类就好像是其外围类的一个方法,并不起作用, 这两个内部类是完全独立的两个实体,各自在自己的命名空间内 //: ...