开始的时候想的比较简单,直接枚举所有输入的边,但最后超时;后来就先进行一次dij,记录所有最短路上的边,然后枚举删去这些边;

#include<stdio.h>
#include<string.h>
#define maxn 1002
#define INF 99999999
int map[maxn][maxn],vis[maxn],n,dis[maxn];
int pre[maxn],flag;
void init()
{
int i,j;
for(i=;i<=n;i++)
for(j=;j<=n;j++)
if(i==j)map[i][j]=;
else map[i][j]=INF;
}
void dij()
{
int i,j,pos;
pos=;
memset(vis,,sizeof(vis));
for(i=;i<=n;i++)
dis[i]=INF;
dis[pos]=;
vis[pos]=;
for(i=;i<n;i++)
{
int min=INF;
for(j=;j<=n;j++)
{
if(!vis[j]&&min>dis[j])
{
pos=j;
min=dis[j];
}
}
vis[pos]=;
for(j=;j<=n;j++)
{
if(dis[j]>dis[pos]+map[pos][j])
{
if(!flag)
pre[j]=pos;
dis[j]=dis[pos]+map[pos][j];
}
}
}
}
int main()
{
int i,j,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
init();
memset(pre,-,sizeof(pre));
for(i=;i<m;i++)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
if(map[x][y]>z)
map[x][y]=map[y][x]=z;
}
flag=;
dij();
flag=;
int max = dis[n];
for(i=n;i!=-;i=pre[i])
{
int t=map[pre[i]][i];
map[pre[i]][i]=map[i][pre[i]]=INF;
dij();
if(dis[n]>max)
max=dis[n];
map[pre[i]][i]=map[i][pre[i]]=t;
}
printf("%d\n",max);
}
}

hdu1595 dijkstra+枚举的更多相关文章

  1. POJ-1062 昂贵的聘礼---Dijkstra+枚举上界

    题目链接: https://vjudge.net/problem/POJ-1062 题目大意: 中文题 思路: 1是终点,可以额外添加一个源点0,0到任意一节点的距离就是这个点的money,最终求的是 ...

  2. UVA-11374 Airport Express (dijkstra+枚举)

    题目大意:n个点,m条无向边,边权值为正,有k条特殊无向边,起止点和权值已知,求从起点到终点的边权值最小的路径,特殊边最多只能走一条. 题目分析:用两次dijkstra求出起点到任何一个点的最小权值, ...

  3. 昂贵的聘礼 - poj 1062 (Dijkstra+枚举)

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 39976   Accepted: 11596 Description 年 ...

  4. poj1062 昂贵的礼物(dijkstra+枚举)

    传送门:点击打开链接 题目大意:买东西,每个东西有了替代品,拥有替代品后可以有优惠价格,每个物品的主人有自己的等级,等级超过m的不能直接或者间接交易,问买1号物品的最低价格是多少. 思路:一开始想到d ...

  5. hdu 2962 题解

    题目 题意 给出一张图,每条道路有限高,给出车子的起点,终点,最高高度,问在保证高度尽可能高的情况下的最短路,如果不存在输出 $ cannot  reach  destination $ 跟前面 $ ...

  6. Luogu P6833 【[Cnoi2020]雷雨】

    这道题赛时的时候想了一个奇怪的做法但是没过,后来经过Stay_hungry的提示就码了这道题. 雷电必定会在一点处分叉,分别电击地上的两个点,我们只需要枚举这个分叉点.那么怎么算出这个点和目标点的距离 ...

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

  8. POJ1062昂贵的聘礼(经典) 枚举区间 +【Dijkstra】

    <题目链接>                   昂贵的聘礼 Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用1000 ...

  9. POJ 1062 昂贵的聘礼(枚举限制条件——Dijkstra算法)

    题目: 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低要求.酋长说:& ...

随机推荐

  1. MIT jos 6.828 Fall 2014 训练记录(lab 3)

    注:源代码参见我的github: https://github.com/YaoZengzeng/jos Part A : User Environments and Exception Handlin ...

  2. bfs简单题-poj2251

    宽搜基础题 思路很简单,注意细节. 走过的节点一定要打上标记//tag数组 三维字符串输入一定要注意 #include <stdio.h> #include <iostream> ...

  3. HDU 4286 Data Handler --双端队列

    题意:有一串数字,两个指针,然后一些添加,删除,反转,以及移动操作,最后输出序列. 解法:可以splay做,但是其实双端队列更简便. 维护三个双端队列LE,MI,RI分别表示[L,R]序列左边,[L, ...

  4. MongoDB学习(一)简介

    本篇主要简单介绍一下MongoDB数据库. 一.简介 mongoDB是一个开源的,基于分布式的,面向文档存储的非关系型数据库.是非关系型数据库当中功能最丰富.最像关系数据库的. mongoDB由C++ ...

  5. [Android Studio] Android studio 多渠道打包(超简洁版)

    [Android Studio] Android studio 多渠道打包(超简洁版) 转载:http://xuyazhou.com/archives/461 http://relex.me/usin ...

  6. (转载)Apache下error.log文件太大的处理

    偶尔发现Apache下的错误日志非常的大,有5G多,先停止Apache服务的所有进程,最简单就是输命令:net stop apache2.4,然后删除 Apache/logs/目录下的 error.l ...

  7. php基础02:变量

    1.创建变量 <?php $num1 = 15; $num2 = 15.5; echo $num1+$num2; echo "<br>"; ?> 2.Loc ...

  8. Qt——QLineEdit使用总结

    QLineEdit是一个单行文本编辑控件. 使用者可以通过很多函数,输入和编辑单行文本,比如撤销.恢复.剪切.粘贴以及拖放等. 通过改变QLineEdit的 echoMode() ,可以设置其属性,比 ...

  9. Zxing二维码重复扫描,不退出。

    扫描条码,把手机实现类似超市扫描枪之类的连续扫描. private void continuePreview(){ SurfaceView surfaceView = (SurfaceView) fi ...

  10. [MetaHook] Load TGA texture to OpenGL

    This function load a *.tga texture file and convert to OpenGL pixel format, uncompress only. #pragma ...