2 条题解

  • 0
    @ 2025-10-8 16:51:31
    #include<bits/stdc++.h>
    using namespace std;
    int sum=0;
    int dfs(int i1,int j1,int in,int jn,int x,int y)
    {
        int n=in-i1+1;
        if(x==i1) return sum+(y-j1+1);
        if(y==j1) return sum+4*(n-1)-(x-i1+1-2);
        if(x==in) return sum+4*(n-1)-(n-2)-(y-j1+1-1);
        if(y==jn) return sum+(y-j1+1)+(x-i1+1)-1;
        sum+=4*(n-1);
        return dfs(i1+1,j1+1,in-1,jn-1,x,y);
    }
    int main()
    {
        int n,x,y;scanf("%d%d%d",&n,&x,&y);
        int ans=dfs(1,1,n,n,x,y);
        printf("%d",ans);
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:51:24
      #include<bits/stdc++.h>
      using namespace std;
      int sum=0;
      int dfs(int i1,int j1,int in,int jn,int x,int y)
      {
          int n=in-i1+1;
          if(x==i1) return sum+(y-j1+1);
          if(y==j1) return sum+4*(n-1)-(x-i1+1-2);
          if(x==in) return sum+4*(n-1)-(n-2)-(y-j1+1-1);
          if(y==jn) return sum+(y-j1+1)+(x-i1+1)-1;
          sum+=4*(n-1);
          return dfs(i1+1,j1+1,in-1,jn-1,x,y);
      }
      int main()
      {
          int n,x,y;scanf("%d%d%d",&n,&x,&y);
          int ans=dfs(1,1,n,n,x,y);
          printf("%d",ans);
          return 0;
      }
      • 1

      *【递归(难度:4)】螺旋矩阵[NOIP普及组2014]

      信息

      ID
      677
      时间
      1000ms
      内存
      128MiB
      难度
      8
      标签
      递交数
      12
      已通过
      9
      上传者