四级等级考试历年真题(第一题)—— 漫漫回国路

1.四级标准

        掌握基本算法中的动态规划方法。 能够使用上述方法编写指定功能的正确完整的程序。

2.漫漫回国路-题目

        时间原因,我就把题目图片放出来,请自行查看。

数据来源:oj.hetao101.com

3.题解

        其实这道题在四级练习中算式比较简单的了,大概意思就是说不考虑转机次数和机票价格,只需看能否到达首都国际机场 n,从 dfs(1)开始深搜, dfs(int x),如果第 i 个机场没有被访问,并且 x 到 i 有航班再 dfs(i);看是否能到达n。

代码结构:基本框架-定义变量-输入-处理-输出-结束,返回0;

4.代码

#include <bits/stdc++.h>
using namespace std;
const int N = 2005;
int a[N][N],n,t;
bool vis[N],flag;
void dfs(int x)
{
    vis[x] = 1;
    if(x == n)
    {
        flag = true;
        return ;
    }
    for(int i = 1;i <= n;i++)
    {
        if(! vis[i] && a[x][i] != -1)
        {
            dfs(i);
        }   
    }
}
void solve()
{
    memset(vis,0,sizeof(vis));
    flag = false;
    cin>>n;
    for(int i = 1;i <= n;i++)
    {
        for(int j = 1;j <= n;j++)
        {
            cin>>a[i][j];
        }
    }
    dfs(1);
    if(flag)
    {
        cout<<"YES"<<endl;
    }
    else
    {
        cout<<"NO"<<endl;
    }
}
int main()
{
    cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}

很简单,对吧?


The End


猜你喜欢

转载自blog.csdn.net/lixinhe_4090/article/details/134385516