http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2622

 #include<stdio.h>
#include<string.h>
#include<queue>
#include<vector>
using namespace std;
const long long INF = 1LL << ;
struct node
{
int v,w;
};
vector<struct node>map[];
int inque[];
long long dis[][];
int s,t,x,n,m; void spfa()
{
queue<int>que;
for(int i = ; i < n; i++)
for(int k = ; k <= x; k++)
dis[i][k] = INF;
dis[s][] = ;
memset(inque,,sizeof(inque)); que.push(s);
inque[s] = ; while(!que.empty())
{
int u = que.front();
inque[u] = ;
que.pop();
for(int i = ; i < map[u].size(); i++)
{
int v = map[u][i].v;
for(int k = ; k < x; k++)
{
if(dis[u][k] < INF && dis[v][(k+)%x] > dis[u][k]+map[u][i].w)
{
dis[v][(k+)%x] = dis[u][k]+map[u][i].w;
if(!inque[v])
{
que.push(v);
inque[v] = ;
}
}
}
}
}
}
int main()
{
int test;
scanf("%d",&test);
while(test--)
{
scanf("%d %d",&n,&m);
for(int i = ; i < n; i++)
map[i].clear();
int u,v,w;
for(int i = ; i <= m; i++)
{
scanf("%d %d %d",&u,&v,&w);
map[u].push_back((struct node){v,w});
}
scanf("%d %d %d",&s,&t,&x);
spfa();
if(dis[t][] >= INF)
printf("No Answer!\n");
else printf("%lld\n",dis[t][]);
}
return ;
}

SDUT 最短路径(二维SPFA)的更多相关文章

  1. POJ1722二维spfa+优先队列优化

    题意:      给你一个有向图,然后求从起点到终点的最短,但是还有一个限制,就是总花费不能超过k,也就是说每条边上有两个权值,一个是长度,一个是花费,求满足花费的最短长度. 思路:       一开 ...

  2. POJ 1724 ROADS(二维SPFA)

    题目链接 用STL实现超时了,用普通队列500+,看到spfa,反应太迟钝了. #include <cstring> #include <cstdio> #include &l ...

  3. POJ 2686 Traveling by Stagecoach(状压二维SPFA)

    Traveling by Stagecoach Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3407   Accepted ...

  4. SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )

    图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...

  5. JAVA根据A星算法规划起点到终点二维坐标的最短路径

    工具类 AStarUtil.java import java.util.*; import java.util.stream.Collectors; /** * A星算法工具类 */ public c ...

  6. homework-02 二维的,好喝的(二维数组的各种子数组)

    1)输入部分 对于输入部分,我定义的输入格式是这样的 前两行为列数和行数 如果文件无法打开,或者输入文件格式不对,均会提示出错并退出 2)二维数组的最大矩形子数组 首先,我使用最最简单的暴力算法,直接 ...

  7. 寻路优化(一)——二维地图上A*启发函数的设计探索

    工作中需要优化A*算法,研究了一天,最后取得了不错的效果.看网上的朋友还没有相关的研究,特此记录一下.有错误欢迎大家批评指正.如需转载请注明出处,http://www.cnblogs.com/Leon ...

  8. 洛谷 P5471 - [NOI2019] 弹跳(二维线段树优化建图+堆优化存边)

    题面传送门 一道非常有意思的题(大概可以这么形容?) 首先看到这类一个点想一个区域内连边的题目可以很自然地想到线段树优化建图,只不过这道题是二维的,因此需要使用二维线段树优化建图,具体来说,我们外层开 ...

  9. Javascript生成二维码(QR)

    网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成.本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网 ...

随机推荐

  1. css培训(三)

    优先级 z-index 不设置 或auto   非static z-index :0 : z-index:-1: opacity 与层叠上下 opacity:.9 对其影响  小于1值   不具备堆叠 ...

  2. 9.30 noip模拟试题

    时限均为1s,内存 256MB 1.某种密码(password.*) 关于某种密码有如下描述:某种密码的原文A是由N个数字组成,而密文B是一个长度为N的01数串,原文和密文的关联在于一个钥匙码KEY. ...

  3. HTML5 <Audio>标签API整理(一)

    简单实例: <audio id="myAudio"></audio> <script> var myAudio = document.getEl ...

  4. Wpf 鼠标拖动元素实例

    1.Wpf中鼠标捕获和释放 //以矩形为例 //创建鼠标捕获 Mouse.Capture(rectOne); //释放鼠标捕获 rectOne.ReleaseMouseCapture(); 2.Wpf ...

  5. Eclipse代码自动填充.

    在默认情况下,Eclipse只在程序员输入“.”并用ALT+/组合键强制调用编码提示功能 我们可以通过少量配置,让Eclipse更聪明,实现完全自动编码提示:1.在你的“工作空间”下找到下在文件.me ...

  6. CI框架多目录设置

    1,设置目的,前台与后台实现独立目录管理 2.通过http://www.myci.com  访问前台,通过http://www.myci.com/admin 访问后台,   多目录的意思是指在同一个网 ...

  7. SGU 249.Matrix(Gray码)

    题意: 用0到2^(n+m-1)这2^(n+m-1)个数填在一个2^n*2^m的矩阵里,使得所有相邻的数的二进制表示只有一位不同. Solution: Gray码.对于第i行第j列的数,由i的Gray ...

  8. 工厂方法模式(Factory Method)

    1.本质:延迟到子类来选择实现 2.示意图: 3.主要功能: 让父类在不知道具体实现的情况下,完成自身功能的调用 类似于注入 4.备注: 1.工厂方法中,通常父类是一个抽象类,里面包含创建对象的抽象工 ...

  9. .animate动画

    .animate(params, [duration], [easing], [callback]) params: 结果样式属性 duration: 动画时长 也可以用 slow normal fa ...

  10. C# winform 右下角弹窗

    [DllImport("user32")] private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, in ...