A. Gooby 的广度优先搜索

    传统题 1000ms 256MiB

Gooby 的广度优先搜索

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

Gooby 刚刚给同学们讲完广度优先搜索(BFS),知道了广搜在一个矩阵上的探索模式是像波纹一样一层层向周围扩散

void bfs(int sx, int sy){
    queue<Node> q;
    q.push(Node{sx, sy});
    while (!q.empty()){
        Node now = q.front();
        q.pop();
        for (int i = 0; i < 4; ++i){
            int tx = now.x + dirx[i];
            int ty = now.y + diry[i];
            if (vis[tx][ty] == 0){
                q.push(Node{tx, ty});
                vis[tx][ty] = 1;
            }
        }
    }
}

但是显然 Gooby 的这段代码有一个致命错误——没有判断边界,也就是会无限向外拓展

比如有如下大小的矩阵,用 0 表示没走过的点(vis[x][y] == 0),用 1 表示走过的点(vis[x][y] == 1)

第一轮搜索以后矩阵如下

0000000
0000000
0001000
0000000
0000000

第二轮搜索以后矩阵如下

0000000
0001000
0011100
0001000
0000000

第三轮搜索以后矩阵如下

0001000
0011100
0111110
0011100
0001000

现在 Gooby 想知道,现在他这份没有设置范围的代码,在不考虑越界(即认为 vis 数组无穷大,代码不会因为出界报错)的情况下

nn 轮搜索以后 vis 数组求和的结果是多少?

输入输出格式

输入格式

输入第一行是一个整数 nn,表示搜索的轮数。

输出格式

输出一行,包含一个整数,表示答案。

样例

3
13
1000000000
1999999998000000001

数据范围

对于 50%50\% 的数据,保证 1n201 \leq n \leq 20

对于 80%80\% 的数据,保证 1n100001 \leq n \leq 10000

对于 100%100\% 的数据,保证 1n1091 \leq n \leq 10^9

2026年五一假期训练赛1

未参加
状态
已结束
规则
乐多
题目
4
开始于
2026-4-30 0:00
结束于
2026-5-1 0:00
持续时间
3.5 小时
主持人
参赛人数
11