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 ...
随机推荐
- marshmallow: 简化Python对象系列化
转载:http://www.thinksaas.cn/topics/0/594/594368.html marshmallow -一个轻量级的库用于将复杂对象转成简单的Python数据类型.或从简单的 ...
- iframe内部刷新后跳转锚点
开发过程中需要在iframe内容页中点击刷新按钮刷新页面并跳转至页面底部,编写js函数在url后面加上锚点名称#mao,但发现并未达到预期效果,通过测试发现锚点只有在第一次访问页面的时候才会生效,所有 ...
- http://code52.org/DownmarkerWPF/
http://code52.org/DownmarkerWPF/ http://kb.cnblogs.com/page/132209/
- git —— 基本命令以及操作(No.1)
git基本命令(附加描述) 1.把文件添加到暂存区$ git add readme.txt 2.把暂存区的文件文件添加到仓库$ git commit -m "提交说明" 备注:ad ...
- require和import的区别
require:是一种common协议,大家按照这个约定书写自己的代码,实现模块化. import:是ES6的模块语法实现.是语言自身的模块实现.
- HDU 2476 String painter(区间DP+思维)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2476 题目大意:给你字符串A.B,每次操作可以将一段区间刷成任意字符,问最少需要几次操作可以使得字符串 ...
- Linux学习笔记:ctrl+z、ctrl+c、ctrl+d的区别
ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样. 1.ctrl+c是强制中断程序的执行,进程已经终止. 2.ctrl+z的是将任务中止(暂停的意思),但是此任务并没有结束,他 ...
- Filebeat配置paths里,不支持递归所有子目录
这个知识点要牢记哟,不然,牛B吹大了,收不回哈. 官方文档为证: Currently it is not possible to recursively fetch all files in all ...
- day1作业:登录接口
作业一:编写登陆接口 1.输入用户名和密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 思路: (1)用户输入用户名: (2)去锁定文件中验证用户名是否锁定: (3)去当前用户验证用户是否存在: ...
- vuejs、eggjs、mqtt全栈式开发设备管理系统
vuejs.eggjs.mqtt全栈式开发简单设备管理系统 业余时间用eggjs.vuejs开发了一个设备管理系统,通过mqtt协议上传设备数据至web端实时展现,包含设备参数分析.发送设备报警等模块 ...