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");
}

2025亚太杯B题】辐射制冷技术的建模与优化——亚太地区大学生数学建模竞赛(思路、代码、论文持续更新中.......)内容概要:本文档围绕2025亚太杯B题“辐射制冷技术的建模与优化”展开,提供数学建模竞赛所需的思路、代码和论文写作支持,内容持续更新。文档列举了大量科研仿真资源,涵盖智能优化算法、机器学习、路径规划、电力系统、信号处理等多个技术领域,重点服务于数学建模参赛者和技术研究人员。资源以Matlab和Python为主要实现工具,包含多种算法在实际问题中的应用案例,如粒子群优化、遗传算法、卡尔曼滤波、深度学习等,并提供配套代码和仿真模型。同时附有网盘链接,便于获取完整资料。; 适合人群:参加数学建模竞赛的本科生、研究生,具备一定编程基础(尤其是Matlab/Python)和数学建模能力的科研初学者;从事智能优化、电力系统、信号处理等相关领域的技术人员。; 使用场景及目标:①辅助完成亚太杯等数学建模竞赛题目,特别是B题辐射制冷技术的建模与优化;②为科研项目提供算法实现参考,提升仿真效率与模型精度;③学习多种智能算法在工程问题中的具体应用方式。; 阅读建议:建议按目录顺序系统浏览,结合提供的代码实例进行调试与复现,重点关注与自身研究方向相关的模块;充分利用网盘资源,对照思路与代码深化理解,提升建模与编程实战能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值