A. 徐老师的广度优先搜索

    传统题 1000ms 256MiB

徐老师的广度优先搜索

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

题目描述

徐老师最近刚学完广度优先搜索(bfs)(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;
            }
        }
    }
}

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

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

第一轮搜索以后矩阵如下

0000000
0000000
0001000
0000000
0000000

第二轮搜索以后矩阵如下

0000000
0001000
0011100
0001000
0000000

第三轮搜索以后矩阵如下

0001000
0011100
0111110
0011100
0001000

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

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

输入格式

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

输出格式

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

数据范围

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

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

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

样例输入1

3

样例输出1

13

样例输入2

1000000000

样例输出2

1999999998000000001

24CSP-J暑假模拟赛Day1

未参加
状态
已结束
规则
IOI
题目
4
开始于
2024-7-30 12:30
结束于
2024-8-12 0:30
持续时间
300 小时
主持人
参赛人数
45