时间限制:0.25s

空间限制:4M

题意:

给出一个n个节点,m条边的图,每条边都有标记了编号为1,2,3三种颜色之一,现在求从1号节点到n号节点的一条最短路径的长度,要求该路径中相邻的边没有相同的颜色。


Solution:

有限制条件的SPFA,要注意有时要走环来改变路径颜色,才能到达目标点。

参考代码

#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#define INF 300
using namespace std;
struct node {
int v, ne, c;
} edge[INF * INF];
queue<int> ql;
int head[INF], pd[INF];
int dis[INF][4], cnt,n,m;
void added (int u, int v, int c) {
edge[++cnt].v = v, edge[cnt].c = c;
edge[cnt].ne = head[u];
head[u] = cnt;
}
void spfa() {
while (!ql.empty() ) {
int x = ql.front();
pd[x] = 0,ql.pop();
for (int i = head[x]; i != 0; i = edge[i].ne) {
int j = edge[i].v, color = edge[i].c;
for (int k = 1; k <= 3; k++) {
if (k == color || dis[x][k] == -1) continue;
if (dis[j][color] == -1 || dis[j][color] > dis[x][k] + 1) {
dis[j][color] = dis[x][k] + 1;
if (!pd[j])
pd[j] = 1, ql.push (j);
}
}
}
}
}
int main() {
int x, y, c;
scanf ("%d %d", &n, &m);
memset (dis, -1, sizeof dis);
for (int i = 1; i <= m; i++) {
scanf ("%d%d%d", &x, &y, &c);
added (x, y, c);
}
ql.push (1); pd[1] = 1;
dis[1][1] = dis[1][2] = dis[1][3] = 0;
spfa();
int ans = INF<<12;
for (int i = 1; i <= 3; i++)
if (dis[n][i] != -1)
ans = min (ans, dis[n][i]);
if (ans != INF<<12) printf ("%d", ans);
else
puts ("-1");
return 0;
}

  

SGU 226.Colored graph(最短路)的更多相关文章

  1. GBX的Graph(最短路)

    Problem B: Graph Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 1  Solved: 1 [cid=1000&pid=1&am ...

  2. SGU 185 Two shortest 最短路+最大流

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21068 Yesterday Vasya and Petya qua ...

  3. SGU 185 Two shortest ★(最短路+网络流)

    [题意]给出一个图,求 1 -> n的2条 没有重边的最短路. 真◆神题--卡内存卡得我一脸血= =-- [思路] 一开始我的想法是两遍Dijkstra做一次删一次边不就行了么你们还又Dijks ...

  4. SGU 156. Strange Graph(欧拉路)

    时间限制:0.25s 空间限制:6M 题目描述 让我们想象一个无向图G=<V,E>.如果边(u,v)在边集E中,那么我们就说两个顶点u和v是邻接点.在这种情况下,我们也说u是v的一个邻接点 ...

  5. Codeforces 715B. Complete The Graph 最短路,Dijkstra,构造

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF715B.html 题解 接下来说的“边”都指代“边权未知的边”. 将所有边都设为 L+1,如果dis(S,T ...

  6. 2018牛客网暑假ACM多校训练赛(第十场)F Rikka with Line Graph 最短路 Floyd

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-F.html 题目传送门 - https://www.n ...

  7. SGU 156 Strange Graph 欧拉回路,思路,汉密尔顿回路 难度:3

    http://acm.sgu.ru/problem.php?contest=0&problem=156 这道题有两种点 1. 度数>2 在团中的点,一定连接一个度数为2的点 2. 度数等 ...

  8. HDU-4725 The Shortest Path in Nya Graph 最短路

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4725 如果直接建图复杂度过大,但是考虑到每层之间的有效边很少,只要在每层增加两个虚拟节点n+i和2*n ...

  9. 2017icpc乌鲁木齐网络赛Colored Graph (构造)

    题目 https://nanti.jisuanke.com/t/16958 题意 给定一个n(n<=500)个点的无向图,给每条边黑白染色,输出同色三角形最少的个数和对应的方案 分析 首先考虑给 ...

随机推荐

  1. Linux学习笔记27——共享内存

    一 共享内存 共享内存是由IPC为进程创建的一个特殊的地址范围,它将出现在该进程的地址空间中.其他进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址.如果某个进程向 ...

  2. Android学习笔记(四)深入探讨Activity

    在应用程序中至少包含一个用来处理应用程序的主UI功能的主界面屏幕.这个主界面一般由多个Fragment组成,并由一组次要Activity支持.要在屏幕之间切换,就必须要启动一个新的Activity.一 ...

  3. [Python]Pip的安装以及简单的使用

    Pip的安装 安装python以后(我的python版本是32位,版本号2.7.10),如果需要安装一些其他的库,一般有两种办法,一种是自己手动去各个库的官网下载,自己安装:另一种方法是安装pip,使 ...

  4. lightoj 1021 - Painful Bases 状态压缩

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1021 #include<cstring> #include<cstd ...

  5. 【设计模式 - 12】之代理模式(Proxy)

    1      模式简介 1.1    定义 为其他对象提供一种代理以控制对这个对象的访问.代理对象起到中介作用,可以去掉功能服务或增加额外服务. 1.2    常见的代理模式 1)        远程 ...

  6. Ubuntu开机出现:Fontconfig warning:"/etc/fonts/conf.d/65-droid-sans-fonts.conf"的解决办法

    Ubuntu升级后可能会出现以下问题: Fontconfig warning: "/etc/fonts/conf.d/65-droid-sans-fonts.conf", line ...

  7. JBoss 系列十一:JBoss Cluster Framework Demo 介绍

    内容概要 JBoss Cluster Framework Demo包括JGruops.JBossCache.Infinispan,我们在随后的系列中会使用和运行这些示例来说明JGroups.JBoss ...

  8. otg线是什么,otg线和数据线的区别介绍

    OTG是什么? OTG主要应用于各种不同的设备或移动设备间的联接,进行数据交换.USB技术的发展,使得PC和周边设备能够通过简单方式.适度的制造成本将各种数 据传输速度的设备连接在一起.上述我们的应用 ...

  9. php判断http头还是https头

    $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HT ...

  10. android 39 共享首选项

    共享首选项SharedPreferences:用于存储少量数据,大量数据则存入文件或者sd卡.以键值对保存数据. activity.java package com.sxt.day06_05; imp ...