[普及]NOIP 2014 螺旋矩阵
2016-10-28 17:08
232 查看
题目描述
一个n行n列的螺旋矩阵可由如下方法生成:
从矩阵的左上角(第1行第1列)出发,初始时向右移动;如果前方是未曾经过的格子,则继续前进,否则右转;重复上述操作直至经过矩阵中所有格子。根据经过顺序,在格子中依次填入1, 2, 3, … , n,便构成了一个螺旋矩阵。2
下图是一个n = 4 时的螺旋矩阵。
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
现给出矩阵大小n以及i和j,请你求出该矩阵中第i行第j列的数是多少。
(本题目为2014NOIP普及T3)
输入输出格式
输入格式:
输入共一行,包含三个整数 n,i,j,每两个整数之间用一个空格隔开,分别表示矩阵大小、待求的数所在的行号和列号。
输出格式:
输出共一行,包含一个整数,表示相应矩阵中第i行第j列的数。
输入输出样例
输入样例#1:
4 2 3
输出样例#1:
14
说明
【数据说明】
对于50%的数据,1 ≤ n ≤ 100;
对于100%的数据,1 ≤ n ≤ 30,000,1 ≤ i ≤ n,1 ≤ j ≤ n。
【分析】
这题比较2…惊天大模拟
【代码】
一个n行n列的螺旋矩阵可由如下方法生成:
从矩阵的左上角(第1行第1列)出发,初始时向右移动;如果前方是未曾经过的格子,则继续前进,否则右转;重复上述操作直至经过矩阵中所有格子。根据经过顺序,在格子中依次填入1, 2, 3, … , n,便构成了一个螺旋矩阵。2
下图是一个n = 4 时的螺旋矩阵。
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
现给出矩阵大小n以及i和j,请你求出该矩阵中第i行第j列的数是多少。
(本题目为2014NOIP普及T3)
输入输出格式
输入格式:
输入共一行,包含三个整数 n,i,j,每两个整数之间用一个空格隔开,分别表示矩阵大小、待求的数所在的行号和列号。
输出格式:
输出共一行,包含一个整数,表示相应矩阵中第i行第j列的数。
输入输出样例
输入样例#1:
4 2 3
输出样例#1:
14
说明
【数据说明】
对于50%的数据,1 ≤ n ≤ 100;
对于100%的数据,1 ≤ n ≤ 30,000,1 ≤ i ≤ n,1 ≤ j ≤ n。
【分析】
这题比较2…惊天大模拟
【代码】
//[普及]NOIP 2014 螺旋矩阵 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<queue> #include<cmath> #include<vector> #define fo(i,j,k) for(i=j;i<=k;i++) using namespace std; int n,x,y,ans; inline void print() { printf("%d\n",ans); exit(0); } int main() { int i,j,c,t; scanf("%d%d%d",&n,&x,&y); t=n; c=min(x,y); c=min(c,min(n+1-x,n+1-y)); fo(i,1,c-1) { ans+=4*(t-1); t-=2; } int h=c,l=c,tot=0; fo(tot,1,t) { ans++; if(h==x && l==y) print(); l++; }l--;h++; fo(tot,1,t-1) { ans++; if(h==x && l==y) print(); h++; }h--;l--; fo(tot,1,t-1) { ans++; if(h==x && l==y) print(); l--; }l++;h--; fo(tot,1,t-2) { ans++; if(h==x && l==y) print(); h--; } return 0; }
相关文章推荐
- [NOIP普及组2014第三题]螺旋矩阵
- NOIP2014普及组--螺旋矩阵(模拟)
- NOIP2014(普及组)T3 螺旋矩阵
- 【NOIP2014 普及组】螺旋矩阵
- 【蒻爆了的NOIP系列--普及组复赛】(5)NOIP2014普及组复赛题解
- NOIP 2014 普及组 T4 子矩阵
- NOIP2014-普及组复赛-第四题-子矩阵
- 【vijos P1914】【codevs 3904】[NOIP2014 普及组T4]子矩阵(dfs+状压dp)
- [NOIP2014][vijos1913]螺旋矩阵(模拟)
- 2014NOIP普及组 子矩阵
- NOIP 2014 螺旋矩阵
- NOIP2014-普及组复赛-第1题-珠心算测验
- Noip2014普及组
- [赛题]NOIP2014普及组
- NOIP2014普及组复赛子矩阵解题报告
- [NOIP2014] 普及组
- [NOIP 2014普及T4] 子矩阵题解
- 洛谷 P2258 NOIP2014普及组 T4 子矩阵 DFS+DP
- 珠心算测验(NOIP2014普及组T1)
- NOIP2014普及组解题报告 ----王煜伟