1 条题解

  • 0
    @ 2026-5-5 22:22:48

    500A500A — 新年交通系统

    在本问题中,我们得到一个有向图,需要判断某个特定顶点是否能从顶点 11 到达。可以通过从顶点 11 开始运行深度优先搜索来解决。

    由于每个顶点最多只有一条出边,因此可以将 DFS 写成一个简单的循环。有些人利用这一点写出了非常简短的代码。

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        int n, t;
        cin >> n >> t;
        vector<int> a(n);
        for (int i = 1; i <= n - 1; ++i) {
            cin >> a[i];
        }
    
        int cur = 1;
        while (cur < t) {
            cur += a[cur];
        }
    
        cout << (cur == t ? "YES" : "NO") << endl;
    
        return 0;
    }
    
    • 1

    信息

    ID
    6967
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者