3380:练65.3 螺旋矩阵
#include <bits/stdc++.h>
using namespace std;
int n,x,y;
int dfs(int n,int x,int y,int cnt)
{
if(x==1) return y+cnt;
if(y==n) return n+x-1+cnt;
if(x==n) return 2*n-1+n-y+cnt;
if(y==1) return 3*n-2+n-x+cnt;
return dfs(n-2,x-1,y-1,cnt+4*(n-1));
}
int main()
{
cin>>n>>x>>y;
cout<<dfs(n,x,y,0);
return 0;
}
/*
P2239 螺旋矩阵
https://www.luogu.com.cn/problem/P2239
1967:【14NOIP普及组】螺旋矩阵-AC
http://ybt.ssoier.cn:8088/problem_show.php?pid=1967
*/
#include<bits/stdc++.h>
#define R register
using namespace std;
//快读
inline void in(int &x)
{
int f=1;x=0;char s=getchar();
while(!isdigit(s)){if(s=='-')f=-1;s=getchar();}
while(isdigit(s)){x=x*10+s-'0';s=getchar();}
x*=f;
}
int n,x,y,ans;
int main( void )
{
in(n),in(x),in(y);
//如果刚开始的话x,y就满足四条规律.
//我们会在第一次输出答案,此时ans为0,无影响.
here:;
if( x == 1 )printf("%d",y+ans);
else if( y == n ) printf("%d",n+x-1+ans);
else if( x == n ) printf("%d",3*n-y-1+ans);
else if( y == 1 ) printf("%d",4*n-x-2+ans);
else
{
ans+=4*n-4;
x--,y--,n-=2;
goto here;
//这句话达到了递归的效果。
//我们的程序运行到这一步会到达上面的here,即再度执行这些if语句.
}
}
蓝桥STEMA竞赛Python模块(23年10月)
NOI题库 python题解
《信息学奥赛一本通 编程启蒙C++版》3001-3005(5题)
《信息学奥赛一本通 编程启蒙C++版》3006-3010(5题)
信息学奥赛一本通·编程启蒙 C++版 3001-3010(10题)
《信息学奥赛一本通 编程启蒙C++版》3011-3015(5题)
《信息学奥赛一本通 编程启蒙C++版》3016-3020(5题)
信息学奥赛一本通·编程启蒙 C++版 3011-3020(10题)
《信息学奥赛一本通 编程启蒙C++版》3021-3025(5题)
《信息学奥赛一本通 编程启蒙C++版》3021-3025(5题)_信息学奥赛c++编程3031答案-CSDN博客