1 条题解

  • 2
    @ 2026-8-21 11:20:38
    #include<bits/stdc++.h>
    using namespace std;
    int a[5][5],b[10000000];
    int dx[4]={1,-1,0,0};
    int dy[4]={0,0,1,-1};
    void dfs(int x,int y,int step,int n){
        if(step==5){
            b[n]++;
            return;
        }
        for(int i=0;i<4;i++){
            int fx=x+dx[i],fy=y+dy[i];
            if(fx>=0&&fx<5&&fy>=0&&fy<5){
                dfs(fx,fy,step+1,n*10+a[fx][fy]);
            }
        }
    }
    int main(){
        for(int i=0;i<5;i++){
            for(int j=0;j<5;j++){
                cin>>a[i][j];
            }
        }
        for(int i=0;i<5;i++){
            for(int j=0;j<5;j++){
                dfs(i,j,0,a[i][j]);
            }
        }
        int sum=0;
        for(int i=0;i<10000000;i++){
            if(b[i])sum++;
        }
        cout<<sum;
    }
    
  • 1

信息

ID
476
时间
1000ms
内存
16MiB
难度
5
标签
递交数
63
已通过
23
上传者