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

Problem Description
"Guanxi" is a very important word in Chinese. It kind of means
"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.

 
Input
There are several test cases.

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.

 
Output
For each test case, output the minimum money Boss Liu has to spend
after you have done your best. If Boss Liu will fail to send his kid to
the middle school, print "Inf" instead.
 
Sample Input
4 5
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
 
Sample Output
50
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的更多相关文章

  1. 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 ...

  2. 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 ...

  3. 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 ...

  4. (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 ...

  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 ...

  6. 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 ...

  7. 杭电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 ...

  8. 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 ...

  9. hdu5137 How Many Maos Does the Guanxi Worth(单源最短路径)

    题目链接:pid=5137">点击打开链接 题目描写叙述:如今有一张关系网.网中有n个结点标号为1-n.有m个关系,每一个关系之间有一个权值.问从2-n-1中随意去掉一个结点之后,从1 ...

随机推荐

  1. aarch64_g1

    GAPDoc-1.5.1-12.fc26.noarch.rpm 2017-02-14 07:37 1.0M fedora Mirroring Project GAPDoc-latex-1.5.1-12 ...

  2. WPF中ListBox的绑定

    WPF中列表式控件派生自ItemsControl类,继承了ItemsSource属性.ItemsSource属性可以接收一个IEnumerable接口派生类的实例作为自己的值(所有可被迭代遍历的集合都 ...

  3. Nginx - 日志格式及输出

    1. 前言 在 Nginx 服务器中,如果想对日志输出进行控制还是很容易的.Nginx 服务器提供了一个 HttpLogModule 模块,可以通过它来设置日志的输出格式. 2. HttpLogMod ...

  4. ASP .Net Core系统部署到SUSE 16 Linux Enterprise Server 12 SP2 64 具体方案

    .Net Core 部署到 SUSE 16 Linux Enterprise Server 12 SP2 64 位中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk ...

  5. 洛谷P3119 草鉴定

    这个题调了一天.. 传送门 读完题目之后我们不难想出这个题是个tarjan缩点问题,因为尽量多的经过草场,所以一号点所在的强连通分量里左右的点都是不需要在进行走逆向边,所能到达的. 然后问题就落在怎么 ...

  6. three.js是什么,能干嘛,和webgl什么关系

    如今浏览器的功能越来越强大,而且这些功能可能通过JavaScript直接调用.你可以用HTML5标签轻松地添加音频和视频,而且可以在HTML5画布上创建各种交互组件.现在这个功能集合里又有了一个新成员 ...

  7. C++11之auto和decltype

    auto自动类型推断,用于从初始表达式中推断出变量的类型. auto a;// 错误,没有初始化表达式,无法推断出a的类型 autoint a =10;// 错误,auto临时变量的语义在C++ 11 ...

  8. Effective STL 学习笔记 31:排序算法

    Effective STL 学习笔记 31:排序算法 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  9. Mac OS 下安装mysqlclient报“mysql_config not found”的解决

    如问题所示,应该是你没有将mysql_config所在文件夹加入系统的PATH路径,解决方案下: 1.第一步找到你的mysql_config所在位置 1.1. 如果是直接安装mysql,所在位置应该是 ...

  10. Django实战(15):Django实现RESTful web service

    曾几何时,Ajax已经统治了Web开发中的客户端,而REST成为web世界中最流行的架构风格(architecture style).所以我们的选择变得很简单:前端ajax访问后端的RESTful w ...