2 条题解

  • 1
    @ 2022-10-22 19:50:34

    这题属实有点简单

    #include<bits/stdc++.h>
    
    using namespace std;
    long long int n,i,j;
    int main(){
    	freopen("matrix.in","r",stdin);
    	freopen("matrix.out","w",stdout);
    	cin>>n>>i>>j;
    	long long int l=min(min(i,n+1-i),min(j,n+1-j));
    	long long int r=4*(l-1)*(n-l+1);//上一个正方形的结尾数字
    	if(i==l) r+=j-l+1;
    	else if(j==l) r=4*l*(n-l)+(l-i+1);
    	else if(i==n-l+1) r+=(n-2*l+1)*2+(n+1-j)-l+1;
    	else if(j==n-l+1) r+=n-2*(l-1)+i-l;
    	cout<<r;//答案
    	return 0;
    }
    

    求点赞😕

    • 0
      @ 2023-10-4 11:48:18
      #include<iostream>
      using namespace std;
      int n,x,y;
      int solve(int n,int x,int y)
      {
      	if(x==1){
      		return y;
      	}
      	if(y==n)
      	{
      		return n-1+x;
      	}
      	if(x==n)
      	{
      		return 3*n-1-y;
      	}
      	if(y==1)
      	{
      		return 4*n-2-x; 
      	}
      	return 4*(n-1)+solve(n-2,x-1,y-1);
      }
      int main(){
      	cin>>n>>x>>y;
      	cout<<solve(n,x,y)<<endl;
      	return 0;
      }
      
      • 1

      信息

      ID
      551
      时间
      1000ms
      内存
      256MiB
      难度
      6
      标签
      (无)
      递交数
      41
      已通过
      13
      上传者