CareerCup-4.2

简介:

Given a directed graph, design an algorithm to find out whether there is a route between two nodes.

开始想用Dijkstra算法,后来发现根本不需要最短只求连通性。回头还得回忆下Dijkstra,写起来有点生疏了。 

#include <iostream>
#include <stack>
using namespace std;
#define Data int
class Graph
{
public:
    Graph(int size):mSize(size)
    {
        data = new Data*[size];
        for(int i=0; i<size; i++)
        {
            data[i] = new Data[size];
            for(int j=0; j<size; j++)
            {
                data[i][j] = 0;
            }
        }
    };
    void addLink(int src, int dst, int weight=1)
    {
        data[src][dst] = weight;
    };
    bool isReached(int src, int dst)
    {
        if(src == dst) return true;
        bool reached[mSize];
        for(int i=0; i<mSize; i++)
            reached[i] = false;
        stack<Data> stack;
        stack.push(src);
        reached[src] = true;
        while(true)
        {
            Data d = stack.top();
            cout<<"Reach: "<<d<<endl;
            if(d == dst)
                return true;
            stack.pop();
            for(int i=0; i<mSize; i++)
            {
                if(data[d][i] > 0 && !reached[i])
                    stack.push(i);
            };
            if(stack.empty()) break;
        };
        return false;
    };
private:
    int mSize;
    Data** data;
};

int main()
{
    Graph graph(4);
    graph.addLink(0, 3);
    graph.addLink(3, 2);
    cout<<boolalpha<<graph.isReached(0, 1)<<endl;
    system("pause");
}

目录
相关文章
|
8月前
|
存储 缓存 负载均衡
阿里云服务器实例选择指南:热门实例性能、适用场景解析对比参考
2025年,在阿里云的活动中,主售的云服务器实例规格除了轻量应用服务器之外,还有经济型e、通用算力型u1、计算型c8i、通用型g8i、计算型c7、计算型c8y、通用型g7、通用型g8y、内存型r7、内存型r8y等,以满足不同用户的需求。然而,面对众多实例规格,用户往往感到困惑,不知道如何选择。本文旨在全面解析阿里云服务器实例的各种类型,包括经济型、通用算力型、计算型、通用型和内存型等,以供参考和选择。
|
9月前
|
机器学习/深度学习 人工智能 算法
赛事获奖|TsingtaoAI荣获“古莲杯”未来智造人才创新创业大赛奖项
2025年海淀区温泉镇经济社会高质量发展大会暨建设世界领先科技园区推进会圆满落下帷幕,温泉镇首届“古莲杯”未来智造人才创新创业大赛举行颁奖。本次大赛聚焦温泉镇 “1 + 4” 核心产业,重点面向新一代信息技术、医药健康、人工智能+等领域设置通用赛道和专项赛道。TsingtaoAI带来的“基于DeepSeek的具身智能实训解决方案——从DeepSeek+机器人到通用具身智能”项目获得“龙芯中科专项赛道”奖项。
151 8
|
11月前
|
算法 数据安全/隐私保护 Python
DES加密初探
本文介绍了Python中常用的DES和3DES加解密方法,包括ECB和CBC模式。通过示例代码展示了如何使用`Crypto`和`pyDes`库实现加解密,并讨论了不同的填充方式。最后,通过一道CTF例题,详细解析了从图像中提取密文、进行ASCII转换、Base64解码、凯撒解码和最终的DES解密过程。
458 4
DES加密初探
计算机中的数字表示:正码、反码和补码
计算机中的数字表示:正码、反码和补码
1171 3
|
消息中间件 测试技术 Linux
linux实时操作系统xenomai x86平台基准测试(benchmark)
本文是关于Xenomai实时操作系统的基准测试,旨在评估其在低端x86平台上的性能。测试模仿了VxWorks的方法,关注CPU结构、指令集等因素对系统服务耗时的影响。测试项目包括信号量、互斥量、消息队列、任务切换等,通过比较操作前后的时戳来测量耗时,并排除中断和上下文切换的干扰。测试结果显示了各项操作的最小、平均和最大耗时,为程序优化提供参考。注意,所有数据基于特定硬件环境,测试用例使用Alchemy API编写。
1327 0
linux实时操作系统xenomai x86平台基准测试(benchmark)
|
人工智能 自然语言处理 机器人
【AIGC】大型语言模型在人工智能规划领域模型生成中的探索
【AIGC】大型语言模型在人工智能规划领域模型生成中的探索
238 6
|
Ubuntu 网络协议 开发工具
在 Ubuntu 中如何设置静态 IP 地址?
在 Ubuntu 中如何设置静态 IP 地址?
1021 0
|
JSON 监控 API
php对接小鹅通API开发高级实战案例解析:获取指定资源学习记录信息(单人单学习记录、单人多学习记录累计、返回数据格式确认)
php对接小鹅通API开发高级实战案例解析:获取指定资源学习记录信息(单人单学习记录、单人多学习记录累计、返回数据格式确认)
561 0
基于Android T:包管理机制详解(下)
接下面我们再来讲解下第三方应用的安装过程