开始的时候想的比较简单,直接枚举所有输入的边,但最后超时;后来就先进行一次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. MySql目录没有data文件夹怎么办

    下载的是mysql的压缩包,解压后,更改my.ini文件,里面有个指向data文件夹的路径,但是mysql安装目录没有data文件夹,需要执行 mysqld --initialize --user=m ...

  2. 怎样用好ZBrush中的PaintStop插件

    PaintStop是ZBrush®3.1的手绘插件,可以比较真实的模拟手绘风格,尤其是用水彩笔刷画水墨风格画.PaintStop插件可供用户免费使用. PaintStop是一款功能强大的插件,已经被添 ...

  3. 安装docker1.10

    1.安装 关闭 /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can ...

  4. Scanner类总结

    1.构造器 Scanner(File source) Scanner(InputStream source) Scanner(String source) 参考:http://blog.sina.co ...

  5. PL/0 词法分析器

    PL/0 词法分析器 #include<stdio.h> #include <ctype.h> #include <stdlib.h> #include <s ...

  6. [转载]ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

    作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)     本篇主要介绍一下ExtJs常用的几个对JS语法的扩展支持,包括Ajax封装,函数事 ...

  7. codeforces 480A A. Exams(贪心)

    题目链接: A. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  8. HDU 4998 Rotate --几何

    题意:给n个点(x,y,p),从1~n,一次每次所有点绕着第 i 个点(原来的)逆时针转pi个弧度,问最后所有点的位置相当于绕哪个点旋转多少弧度,求出那点X和弧度P 解法:直接模拟旋转,每次计算新的坐 ...

  9. Linux ncurses编写 FlapyBird 第一步

    /* * flapybird.h * * Created on: 2016年9月15日 * Author: jon */ #include <curses.h> #include < ...

  10. iOS程序间调用

    1.在被调用应用内的info.plist里面设置如下: 鼠标右击information property list ,然后从列表中选择URL types 右击 add row 添加一个对象(item) ...