Ada and Cycle

在Bugindia的多个城市间,利用邻接矩阵表示城市间的单向道路,通过基础BFS算法寻找从每个城市出发并返回的最短路径长度。如果不存在这样的路径,则输出特定提示。

ADACYCLE - Ada and Cycle

no tags 

Ada the Ladybug is on a trip in Bugindia. There are many cities and some uni-directional roads connecting them. Ada is wondering about the shortest path, which begins in a city and ends in the same city. Since Ada likes short trips, she asked you to find the length of such path for each city in Bugindia.

Input

The first line will contain 0 < N ≤ 2000, the number of cities.

Then N lines follow, each containing N integers 0 ≤ Hij ≤ 1. One means, that there is a road between and (zero means there isn't a road).

Output

Print N lines, the length of shortest path which begins in city i and ends in city i. If the path doesn't exist, print "NO WAY" instead.

Example Input

5
0 1 1 1 1
1 0 0 0 1
0 0 1 1 0
0 0 1 0 0
0 0 0 1 0

Example Output

2
2
1
2
NO WAY

Example Input

5
0 1 0 0 1
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
1 0 0 0 0

Example Output

2
5
5
5
2

2.题意概述:

给你邻接矩阵,其中ij元素的0表示i到j没有道路,1表示有长度为1的道路,某人喜欢短途旅行,要你判断他在i城市时候的最短旅行路程是什么,不存在则输出NO WAY

3.解题思路

时间很宽松,因为每条边权值相同都为1,用最基础的bfs即可。


4.AC代码:


#include<bits/stdc++.h>
using namespace std;
const int N=2222;
const int inf=0x3f3f3f3f;
vector<int>vv[N];
bool vis[N];
int ans;
int n;
typedef pair<int,int> p;


int bfs(int i)
{
    queue<p>q;
    q.push(make_pair(0,i));

    while(!q.empty())
    {
        int top=q.front().second;
        int dis=q.front().first;
        q.pop();
        for(int j=0;j<vv[top].size();j++)
        {
            int tem=vv[top][j];
            if(!vis[tem])
            {
                vis[tem]=1;
                if(tem==i)
                    return  dis+1;
                    q.push(make_pair(dis+1,tem));
            }

        }
    }
    return inf;
}
int main()
{
    cin>>n;
    int tem;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            scanf("%d",&tem);
            if(tem)
            {
                vv[i].push_back(j);
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        ans=inf;
        if(vv[i].size())
        {
            memset(vis,false,sizeof(vis));
            ans=bfs(i);
        }
        if(ans==inf)
        {
            puts("NO WAY");
        }
        else
        {
            printf("%d\n",ans);
        }
    }
}


内容概要:本文档介绍了基于3D FDTD(时域有限差分)方法在MATLAB平台上对微带线馈电的矩形天线进行仿真分析的技术方案,重点在于模拟超MATLAB基于3D FDTD的微带线馈矩形天线分析[用于模拟超宽带脉冲通过线馈矩形天线的传播,以计算微带结构的回波损耗参数]宽带脉冲信号通过天线结构的传播过程,并计算微带结构的回波损耗参数(S11),以评估天线的匹配性能和辐射特性。该方法通过建立三维电磁场模型,精确求解麦克斯韦方程组,适用于高频电磁仿真,能够有效分析天线在宽频带内的响应特性。文档还提及该资源属于一个涵盖多个科研方向的综合性MATLAB仿真资源包,涉及通信、信号处理、电力系统、机器学习等多个领域。; 适合人群:具备电磁场与微波技术基础知识,熟悉MATLAB编程及数值仿真的高校研究生、科研人员及通信工程领域技术人员。; 使用场景及目标:① 掌握3D FDTD方法在天线仿真中的具体实现流程;② 分析微带天线的回波损耗特性,优化天线设计参数以提升宽带匹配性能;③ 学习复杂电磁问题的数值建模与仿真技巧,拓展在射频与无线通信领域的研究能力。; 阅读建议:建议读者结合电磁理论基础,仔细理解FDTD算法的离散化过程和边界条件设置,运行并调试提供的MATLAB代码,通过调整天线几何尺寸和材料参数观察回波损耗曲线的变化,从而深入掌握仿真原理与工程应用方法。
内容概要:本文系统介绍了无人机测绘在多个领域的广泛应用,重点阐述了其在基础地理信息测绘、工程建设、自然资源与生态环境监测、农业与农村管理、应急救灾以及城市管理等方面的实践价值。无人机凭借灵活作业、低成本、高精度和快速响应的优势,结合航测相机、LiDAR、多光谱、热成像等多种传感器,能够高效获取DOM、DSM、DEM、DLG等关键地理数据,并生成三维模型,显著提升测绘效率与精度,尤其适用于复杂地形和紧急场景。文章还强调了无人机在不同时期工程项目中的动态监测能力及在生态环保、土地确权、灾害应急等方面的数据支撑作用。; 适合人群:从事测绘、地理信息系统(GIS)、城乡规划、自然资源管理、农业信息化、应急管理等相关工作的技术人员与管理人员;具备一定地理信息基础知识的专业人员;无人机应用从业者或爱好者。; 使用场景及目标:①了解无人机测绘的技术优势及其在各行业中的具体应用场景;②为实际项目中选择合适的无人机测绘方案提供参考依据;③支持政府部门、企事业单位在土地管理、工程建设、灾害应对等领域实现数字化、智能化决策。; 阅读建议:此资源以应用为导向,涵盖了技术原理与实践案例,建议结合具体业务需求深入研读,并可进一步索取“无人机测绘设备选型与作业流程清单”以指导实际操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值