【紫书】蛇形填数P40+nyoj33蛇形填数(原题)+ hdu2153仙人球的残影(变形蛇形填数) +nyoj852蛇形填数(二)
2018-02-05 18:30
323 查看
对矩阵进行填数:
输入n,代表矩阵的大小为n*n,然后输入该方阵。
从数1开始填写,设 ”笔“的坐标为( x ,y ),则一开始 x=0,y=n-1。笔的移动情况就是:下,下,下,左,左,左,上,上,上,右,右,下,下,左,上。总之就是先下,到不能下为止,然后是左,接着是上,最后是右。
”不能填“指的是再走就走出边界(例如:4→5),或者这个各自已经做到过(例如:12→13)。如果把所有格子都初始化为0,就能够很好的判断。
题目推荐:
nyoj33蛇形填数(原题)
hdu2153仙人球的残影(变形蛇形填数)
nyoj852蛇形填数(二)
10 | 11 | 12 | 1 |
9 | 16 | 13 | 2 |
8 | 15 | 14 | 3 |
7 | 6 | 5 | 4 |
从数1开始填写,设 ”笔“的坐标为( x ,y ),则一开始 x=0,y=n-1。笔的移动情况就是:下,下,下,左,左,左,上,上,上,右,右,下,下,左,上。总之就是先下,到不能下为止,然后是左,接着是上,最后是右。
”不能填“指的是再走就走出边界(例如:4→5),或者这个各自已经做到过(例如:12→13)。如果把所有格子都初始化为0,就能够很好的判断。
#include <bits/stdc++.h> using namespace std; int a[20][20]; int main() { int n,tot; cin>>n; int x=0,y=n-1; memset(a,0,sizeof(a)); tot=a[0][n-1]=1; while(tot<n*n) { while(x+1<n&&!a[x+1][y])//向下走 a[++x][y]=++tot; while(y-1>=0&&!a[x][y-1])//向左走 a[x][--y]=++tot; while(x-1>=0&&!a[x-1][y])//向上走 a[--x][y]=++tot; while(y+1<n&&!a[x][y+1])//向右走 a[x][++y]=++tot; } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { cout<<setw(3)<<a[i][j]; } cout<<endl; } }
题目推荐:
nyoj33蛇形填数(原题)
hdu2153仙人球的残影(变形蛇形填数)
nyoj852蛇形填数(二)
//hdu2153仙人球的残影 #include<bits/stdc++.h> using namespace std; int a[101][101]; void Show(int x) { int i,j,m,n; memset(a,0,sizeof(a)); i=1; m=1; j=2; n=x; while(i<=n) a[1][i++]=m++; while(j<=n) a[j++] =m++; i=n-1; while(i>=1) a [i--]=m++; j=n-1; while(j>=2) a[j--][1]=m++; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) if(a[i][j]) printf("%3d",a[i][j]); else printf(" "); cout<<endl; } } int main() { int n; while(cin>>n&&n!=0) { Show(n); } return 0; }
//nyoj852蛇形填数(2) #include <bits/stdc++.h> using namespace std; int a[1005][1005]; int main() { int t;cin>>t; while(t--) { memset(a,0,sizeof(a)); int n;cin>>n; int x=0,y=0,tot; tot=a[x][y]=1; while(tot<(n+1)*n/2) { while(y+1<n&&!a[x][y+1])//向右 a[x][++y]=++tot; while(y-1>=0&&x+1<n&&!a[x+1][y-1])//向左下 a[++x][--y]=++tot; while(x-1>=0&&!a[x-1][y])//向上 a[--x][y]=++tot; } for(int i=0;i<n;i++) { for(int j=0;j+i<n;j++) { if(j)cout<<' '; cout<<a[i][j]; }cout<<endl; } } }
相关文章推荐
- HDU 2153 仙人球的残影(类蛇形填数)
- HDU 2153 仙人球的残影
- hdu-2153-仙人球的残影
- HDU 2153 仙人球的残影 (字符串处理,类似蛇形矩阵)
- HDU 2153 仙人球的残影
- hdu 2153 仙人球的残影
- hdu 2153 仙人球的残影新解法(可以利用蛇阵来解决哦!)
- (解题报告)HDU2153———仙人球的残影
- HDOJ(HDU) 2153 仙人球的残影(谜一样的题、、、)
- HDU 2153 --仙人球的残影
- HDOJ(HDU) 2153 仙人球的残影(谜一样的题、、、)
- hdu 2153 仙人球的残影
- HDU 2153 仙人球的残影.
- hdu 2153 仙人球的残影
- hdu 2153 仙人球的残影
- HDU 2153 仙人球的残影
- hdu 2153 仙人球的残影
- HDU 2153 仙人球的残影
- hd 2153 仙人球的残影
- nyoj 852 蛇形填数(二)【循环+数组】