Tram(转换为最短路模型)

Arnold Denoise流程 参考:https://support.solidangle.com/display/ARP/Removing+Noise+Workflow Arnold生来不是一个以单帧渲染速度见长的渲染器,但这并不能作为一个简单场景渲染时间长达几个小时的借口。 个人认为高品质生产级渲染结果中,Unbiased renderer在渲染时最耗计算时间的其实就是降噪,以至于降噪专门成了一门灯光师必备的技术 阅读详情

Description
Tram network in Zagreb consists of a number of intersections and rails connecting some of them. In every intersection there is a switch pointing to the one of the rails going out of the intersection. When the tram enters the intersection it can leave only in the direction the switch is pointing. If the driver wants to go some other way, he/she has to manually change the switch.

When a driver has do drive from intersection A to the intersection B he/she tries to choose the route that will minimize the number of times he/she will have to change the switches manually.

Write a program that will calculate the minimal number of switch changes necessary to travel from intersection A to intersection B.
Input
The first line of the input contains integers N, A and B, separated by a single blank character, 2 <= N <= 100, 1 <= A, B <= N, N is the number of intersections in the network, and intersections are numbered from 1 to N.

Each of the following N lines contain a sequence of integers separated by a single blank character. First number in the i-th line, Ki (0 <= Ki <= N-1), represents the number of rails going out of the i-th intersection. Next Ki numbers represents the intersections directly connected to the i-th intersection.Switch in the i-th intersection is initially pointing in the direction of the first intersection listed.
Output
The first and only line of the output should contain the target minimal number. If there is no route from A to B the line should contain the integer “-1”.
Sample Input
3 2 1
2 2 3
2 3 1
2 1 2
Sample Output
0

就是一个列车从A到B,但是铁路是多向的,就像多掷开关一样,走原来的方向不用改变铁路,走其他方向就要改变一次,问这过程中最少改变的次数。
水题……,就是把最短路的单位变成了改变开关的次数,只要把每条铁路原来连的方向权值是0,其他方向是1,跑一遍最短路就行了。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
#include<vector>
#include<algorithm>
#include<string>
#include<cmath>
#include<set>
#include<map>
#include<vector>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int maxn = 1005;
int head[105],d[105],n;
bool leap[105];
struct Node
{
    int u,v,w,next;
}node[10050];
void add_edge(int u,int v,int w,int tot)
{
    node[tot].u = u;node[tot].v = v;
    node[tot].w = w;
    node[tot].next = head[u];
    head[u] = tot;
}
void spfa(int start)
{
    for(int i = 1;i <= n;i++)leap[i] = false;
    for(int i = 1;i <= n;i++)d[i] = inf;
    d[start] = 0;leap[start] = true;
    queue<int>p;
    p.push(start);
    while(p.size())
    {
        int u = p.front();p.pop();
        leap[u] = false;
        for(int i = head[u];i != -1;i = node[i].next)
        {
            int v = node[i].v;
            if(d[v] > d[u] + node[i].w)
            {
                d[v] = d[u] + node[i].w;
                if(!leap[v])
                {
                    leap[v] = true;p.push(v);
                }
            }
        }
    }
}
int main()
{
    #ifdef LOCAL
    freopen("C:\\Users\\巍巍\\Desktop\\in.txt","r",stdin);
    //freopen("C:\\Users\\巍巍\\Desktop\\out.txt","w",stdout);
    #endif // LOCAL
    int a,b;
    while(scanf("%d%d%d",&n,&a,&b) != EOF)
    {
        int cnt = 1;
        memset(head,-1,sizeof(head));
        for(int i = 1;i <= n;i++)
        {
            int k;
            scanf("%d",&k);
            for(int j = 1;j <= k;j++)
            {
                int x;
                scanf("%d",&x);
                if(j == 1)
                    add_edge(i,x,0,cnt++);
                else
                    add_edge(i,x,1,cnt++);
            }
        }
        spfa(a);
        if(d[b] == inf)
            printf("-1\n");
        else
            printf("%d\n",d[b]);
    }
    return 0;
}
反序列化漏洞详解 目录 一、什么是序列化和反序列化 二、什么是反序列化漏洞 三、序列化函数(serialize) 四、反序列化(unserialize) ​五、什么是PHP魔术方法 六、一些常见的魔术方法 七、魔术方法的利用 八、反序列化漏洞的利用 1.__destruct()函数 2.__wakeup() 3.toString() ​九、反序列化漏洞的防御 一、什么是序列化和反序列化 序列化是将对象转换为字符串以便存储传输的一种方式。而反序列化恰好就是序列化的逆过程,反序列化会将字符串. 阅读详情

相关推荐

同花顺客户端数据采集:Hook注入与内存解密实战

在金融量化领域,客户端数据采集是获取低延迟、高精度行情的关键技术路径。其底层涉及进程通信、内存加密、反调试等典型Windows逆向工程问题。理解API Hook原理与AES-CBC动态密钥派生机制,有助于突破传统HTTP爬虫在国产金融软件中的失效困境。该技术不依赖网络劫持,而聚焦于本地进程内函数拦截与运行时内存解析,具备离线、可控、合规等工程优势,广泛应用于Level2行情、逐笔委托、分笔成交等高频数据场景,是量化基础设施中‘端侧数据主权’的重要实现方式。

weixin_30496999的博客 854

Tram(P1847)

题目注意:每一个拐角都是从0开始算,具体看代码的输入部分。 方法:floyd #include #include #include using namespace std; #define INF 100000000; int from,to; #define N 201 int map[N][N]; int n; int d[N]; int main() { f

jiangjiashi的博客 645

LabVIEW 调用MATLAB 进行图像处理的实现

程机械及设备的变形、振动、冲击、粗糙度、刚度和强度等特性,还可用在土木结构、水利设施的变形测量[4][5]。因此,该技术在机械、土木、水利、电器、航空航天、兵器工业及生物医学等领域的检测中具有非常重要的地位。将物面前方空间的散斑用摄像设备记录下来,当物体运动或由于受力而变形时,这些随机分布的散斑图也随之在空间按一定的规律运动,因此能用记录的散斑图在计算机上分析物体的运动和变形,这就是电子散斑技术。当物体的漫反射表面被激光照射时,漫反射的光波在物体表面的前方相互干涉,由于漫反射光的。

qq_37971227的博客 3873

Tram

题目: 给出站点以及起点和终点,在每个站点,给出该站点可以到达地的站点个数(可以认为两个站点之间可以到达那么距离为1),求出起点与终点最短距离; 代码: #include<iostream> #include<stdio.h> #include<string.h> #include<math.h> #include<algorithm&g...

stdio_xuege的博客 218

C++游戏开发入门:从环境配置到第一个完整项目

C++ 作为游戏开发领域的关键语言,其学习路径常因语法枯燥而令初学者却步。以项目驱动的方式学编程,能帮助学习者将变量、循环、函数、指针等基础概念融入实际游戏逻辑中,获得即时反馈与完整项目经验。掌握合适的开发环境是高效实践的前提,例如在 Windows 下使用 VS Code 搭配 MinGW-w64 编译器,配合调试器与构建脚本,即可搭建轻量可扩展的 C++ 游戏开发工作流。此类课程通常面向无基础人群,从控制台小游戏逐步过渡到带游戏循环的完整作品,过程中还需关注性能观察、素材授权与版本管理。无论你是刚接触编

weixin_30621959的博客 540

AppStore逆向分析:从网络抓包到自动化模拟的完整实践

在移动应用生态中,理解客户端与服务器之间的通信协议是进行自动化测试、数据分析和系统集成的关键技术基础。通过分析网络请求与响应,可以深入理解认证、会话管理和数据交换的原理,这对于构建稳定的自动化流程至关重要。其技术价值在于能够实现合法场景下的流程模拟,例如应用元数据监控、沙盒环境测试或内部工具开发。在实际应用场景中,开发者常需处理登录态维持、请求签名验证及风控策略应对等挑战。本文聚焦于AppStore这一封闭生态,详细拆解了其登录、查询等核心环节的通信机制,并探讨了使用Python结合抓包工具进行安全逆向分析

weixin_42524171的博客 926

poj1847 - Tram (最短路径问题) (Dijkstra)

Tram Description Tram network in Zagreb consists of a number of intersections and rails connecting some of them. In every intersection there is a switch pointing to the one of the rails going out

ITCTO-疯男的优快云博客 664

APP爬虫:Airtest的使用和爬取实战详解

Airtest是一个跨平台的自动化测试工具,主要用于移动应用和游戏的UI自动化测试。它支持图像识别、触摸操作、文本输入等功能,能够模拟真实用户的操作行为。此外,Airtest还具备强大的日志记录和报告生成功能,方便开发者进行调试和分析。图像识别:通过截图匹配元素,无需依赖 UI 层次结构。跨平台支持:支持 Android、iOS 和 Windows 应用。简单易用:提供 IDE 和脚本录制功能,降低使用门槛。

数据知道的博客 9618

Tram POJ - 1847 最短路变形

一、内容 Tram network in Zagreb consists of a number of intersections and rails connecting some of them. In every intersection there is a switch pointing to the one of the rails going out of the intersect...

Tizzi的博客 796

常说的cache机制到底是什么?L1 cache和 L2 cache是什么?

一文带你迅速了解CPU内的cache机制!!图解多核CPU中的多级cache结构。为何有的处理器没有cache?

车载系统攻城狮 5875

22、硬件工程师笔试面试——电机(2025版本)

例如,B级绝缘的电机可以承受的最高温度为130℃,而H级绝缘的电机可以承受高达180℃的温度。同时,也要考虑电机的成本和控制系统的复杂性。电机的选择取决于其应用的具体要求,包括所需的功率、速度、扭矩、效率、成本和工作环境等。根据电动机保护配置原则,为电机配置适当的保护,如过负荷保护、缺相保护、逆相保护、接地漏电保护、堵转保护、相不平衡保护、短路保护、过电压保护、低电压保护、过热保护等。根据安培环路定理,电流和磁场的相互作用会在电机的转子上产生力,这些力作用于转子上,使其绕轴旋转,从而产生转矩。

XU157303764的博客 3537

mysql 空字符串tram_POJ-1847 Tram( 最短路 )

DescriptionTram network in Zagreb consists of a number of intersections and rails connecting some of them. In every intersection there is a switch pointing to the one of the rails going out of the int...

weixin_39562928的博客 144

常用元器件使用方法36:USB转串口芯片CH340X

本文介绍了CH340X芯片的使用方法

snmplink的博客 2827

POJ1847_Tram_最短路

题意: 有N个站点,站点之间有轨道相连,但是站点同时只连向一个站点,要到该站点可以到的其它站点需要使用转换器,问从A到B需要最少使用多少次转换器 思路: 初始时的路径权值初始化为0,备用的权值为1,跑最短路即可。 #include <cstdio> #include <cstring> #include <queue> #include <algorith...

CY05627的博客 198

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

POJ1847---Tram

Tram Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 10622   Accepted: 3877 Description Tram network in Zagreb consists of a number of intersections and rails

Alex 1073

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

关于kungbin最短路专题的题解

好了,用了一个月的时间终于把图论套题刷个差不多,也意识到了自己的许多不足,同时也感觉自己能里还需要提升,其中还剩下两道网络流的问题,由于我现在还没时间去学,就现空过去了,下面开始总结下最短路的几个条件与问题,便于以后复习,也同时把最短路的一些总结的技巧分享给你们。 一、例题总结 1.Til the Cows Come Home ※ 题目链接 该题是标准的最短路题,也不需要任何变式,题意给...

一只酷酷光儿的博客 699

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

poj 1847 Tram (SPFA最短路)

题目链接:   http://poj.org/problem?id=1847 题目大意:  这道题理解起来有点恶心                  有N个铁轨交叉口,这些交叉口与其他交叉口通过铁轨连接                  电车开进一个交叉口,想去另一个交叉口,必须要把灯照向下一个交叉口                  求从A到B驾驶员需要转换灯的最小次数 解题思路:

ンZee的解题报告 1094

POJ1847 Tram ACM解题报告(dijkstra求最短路)

这题题意好难理解,看了别人写的题意才理解了,理解之后就是一个求最短路的简单题(我是新手,据说用bellman,floyd,spfa都可以做,我去学习下) 这题首先输入n个点和起点终点, 接下去是n个点,每个点有ki个方向,第一个输入的方向是可以不用转换就走的,可以记为map[i][j]=0, 接下去输入的ki-1个方向就是需要1次转换才能走,记为map[i][j]=1; 然后使用dijks

Miracle_ma的专栏 1035

poj1847Tram

Tram Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14404 Accepted: 5322 DescriptionTram network in Zagreb consists of a number of intersections and rails connecting some of

wo的只属于我 348

POJ-1847 Tram(最短路)

POJ-1847 N个站点,站点之间有轨道相连,但是站点只连向其可到的第一个站点,要到该站点可以到的其它站点需要使用转换轨道,问从A到B需要最少转换多少次 每个站到到其可达的第一个站点边权为0,其余可达的边权为1,显然不会经过同一个节点两次,直接选最短就好了// 显然不会经过同一个节点两次,直接选最短就好了 WA1 忘判-1 #include <cstdio> #include <algorit

lanvent的博客 420

poj-1847-Tram

TramTime Limit: 1000MS Memory Limit: 30000KTotal Submissions:17828 Accepted: 6654DescriptionTram network in Zagreb consists of a number of intersections and rails connecting some of them. In every int...

lee371042的博客 268

poj1847Tram 最短路 floyd dijkstra

Tram network in Zagreb consists of a number of intersections and rails connecting some of them. In every intersection there is a switch pointing to the one of the rails going out of the intersection.

liluoyu_1016的博客 272

POJ-1847 Tram( 最短路 )

题目链接:http://poj.org/problem?id=1847 Description Tram network in Zagreb consists of a number of intersections and rails connecting some of them. In every intersection there is a switch pointing to th...

weixin_30488085的博客 62

量子计算噪声优化与TRAM编译框架解析

量子计算作为下一代计算范式,其核心挑战在于量子比特的噪声敏感性问题。量子噪声主要分为退相干噪声和门操作错误两类,它们会随着量子电路深度的增加而累积,严重影响计算结果的可靠性。在NISQ(含噪声中等规模量子)时代,如何通过编译优化降低噪声影响成为关键研究方向。TRAM框架创新性地引入噪声感知的社区划分(CQTP)和时间加权初始映射(THIM)技术,通过分析量子硬件的时空噪声特性,实现更优的量子电路编译。该技术特别适用于量子化学模拟、组合优化等需要维持长时间量子纠缠的场景,在IBM量子处理器实测中可使电路保真度

weixin_33719619的博客 820

Tram(最短路问题)(核心用floyd写的)

输入理解: 第一行的N是代表下面有N个交叉点,最后输出A到B手动更换开关最少的次数 以下N行:第i行的第一个数表示第i个交叉口有ki个轨道,下面ki个数表示i能到达的轨道,ki后面的第一个数表示交叉口原来指向的轨道t(既从i到t不用换道)

weixin_66182206的博客 603

POJ 1847 Tram 单源最短路径

题意:轨道网,有若干转换器,每个转换器都和其他若干转换器相连,转换器初始指向第一个与其相连的转换器。问要到达终点需要最少转换多少次? 思路:可以用dijkstra单源最短路来做,把轨道网看做有向图(因为1第一个指向2,2的第一个不一定指向1),当前转换器处始指向的那个转换器之间的路径权值为0,其他路径权值为1,求一次起点到终点的最短路,结果就是最少转换次数,注意可能没有路径,这时要输出-1 代

公孙轩辕,一眼千年 993
上一篇: 昂贵的聘礼(坑爹的枚举+bellmanford)
下一篇: Extended Traffic(spfa判负环)
Techay
博客等级 码龄11年 11粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值