Because there were too many questions from 1.1 to 1.7, I just skipped the previous one and started it from 1.8.
C++ AC code is attached. Topic-brushing website: noi.openjudge.cn
(This is the full version, all T1-T25.)
01: Matrix exchange rows
#include<bits/stdc++.h> using namespace std; int main() { int a[5][5],n,m; for(int i=0;i<5;i++) { for(int j=0;j<5;j++) { cin>>a[i][j]; } } cin>>m>>n; for(int i=m-1;i<m;i++) { for(int j=0;j<5;j++) { swap(a[i][j],a[n-1][j]); } } for(int i=0;i<5;i++) { for(int j=0;j<5;j++) { cout<<a[i][j]<<" "; } cout<<endl; } return 0; }
02. Lattices with diagonal lines in the same column
#include<bits/stdc++.h> using namespace std; int main() { int n,a,b,c[11][11]; cin>>n>>a>>b; for(int i=1;i<=n;i++) cout<<"("<<a<<","<<i<<")"<<" "; cout<<endl; for(int i=1;i<=n;i++) cout<<"("<<i<<","<<b<<")"<<" "; cout<<endl; for(int i=1;i<=n;i++) for(int k=1;k<=n;k++) if(a-i==b-k) cout<<"("<<i<<","<<k<<")"<<" "; cout<<endl; for(int i=n;i>=1;i--) for(int k=n;k>=1;k--) if(i+k==a+b) cout<<"("<<i<<","<<k<<")"<<" "; cout<<endl; return 0; }
03: Calculate the sum of edge elements of a matrix
#include<bits/stdc++.h> using namespace std; int s; int main() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { int x; cin>>x; if(i==1||i==n||j==1||j==m) s+=x; } cout<<s; }
04: Error Detection
#include<bits/stdc++.h> using namespace std; int h[101],l[101]; int n; int x,y,dx,dy; int main() { cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { int x; cin>>x; h[i]+=x; l[j]+=x; } for(int i=1;i<=n;i++) { if(h[i]&1) x++,dx=i; if(l[i]&1) y++,dy=i; } if(x==1&&y==1) cout<<dx<<' '<<dy; else if(x>0||y>0) cout<<"Corrupt"; else cout<<"OK"; }
05:Calculate saddle point
#include<iostream> using namespace std; int a[6][6]; bool ok; int main() { for(int i=1;i<=5;i++) for(int j=1;j<=5;j++) cin>>a[i][j]; for(int i=1;i<=5;i++) { int max_h=-0x7fffffff,k=0; for(int j=1;j<=5;j++) if(a[i][j]>max_h) { max_h=a[i][j];k=j; } int min_l=0x7fffffff,q=0; for(int l=1;l<=5;l++) if(a[l][k]<min_l) { min_l=a[l][k];q=l; } if(q==i) { cout<<i<<' '<<k<<' '<<a[i][k]; return 0; } } cout<<"not found"; }
06: Image Similarity
#include<bits/stdc++.h> using namespace std; int m,n,a[101][101],s; int main() { cin>>m>>n; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) { int x; cin>>x; if(x==a[i][j]) s++; } double k=(double)s/(n*m); k*=100; printf("%.2lf",k); }
07: Matrix Zero Subtraction Sequence Sum
#include<iostream> using namespace std; int a[101][101]; int h[101],l[101]; int main() { int n; cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; int s=n; for(int k=1;k<=s;k++) { cout<<a[2][2]<<endl; for(int i=1;i<=n;i++) h[i]=a[i][1]; for(int i=1;i<=n;i++) for(int j=2;j<=n;j++) h[i]=min(h[i],a[i][j]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) a[i][j]-=h[i]; for(int i=1;i<=n;i++) l[i]=a[1][i]; for(int i=2;i<=n;i++) for(int j=1;j<=n;j++) l[j]=min(l[j],a[i][j]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) a[i][j]-=l[j]; if(n>2) { for(int i=1;i<=n;i++) for(int j=2;j<n;j++) a[i][j]=a[i][j+1]; for(int i=2;i<n;i++) for(int j=1;j<=n;j++) a[i][j]=a[i+1][j]; n--; } } }
08: Matrix Addition
#include<bits/stdc++.h> using namespace std; int n,m; int a[1000][1000]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { int x; cin>>x; a[i][j]+=x; } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) cout<<a[i][j]<<' '; cout<<endl; } }
09: Matrix Multiplication
#include<bits/stdc++.h> using namespace std; int n,m,k; int a[101][101],b[101][101],c[101][101]; int main() { cin>>n>>m>>k; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; for(int i=1;i<=m;i++) for(int j=1;j<=k;j++) cin>>b[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=k;j++) for(int l=1;l<=m;l++) c[i][j]+=a[i][l]*b[l][j]; for(int i=1;i<=n;i++) { for(int j=1;j<=k;j++) cout<<c[i][j]<<' '; cout<<endl; } }
10: Matrix transposition
#include<bits/stdc++.h> using namespace std; int n,m,a[101][101]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) cout<<a[j][i]<<' '; cout<<endl; } }
11. The Mystery of Image Rotation
#include<bits/stdc++.h> using namespace std; int n,m,a[101][101]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; for(int i=1;i<=m;i++) { for(int j=n;j>=1;j--) cout<<a[j][i]<<' '; cout<<endl; } }
12. Variable multiterminal matrices
#include<bits/stdc++.h> using namespace std; int n; char a[101][101],b[101][101]; bool p[5]; int main() { cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>b[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if(b[i][j]!=a[n-j+1][i]) p[1]=true; if(b[i][j]!=a[j][n-i+1]) p[2]=true; if(b[i][j]!=a[n-i+1][n-j+1]) p[3]=true; if(b[i][j]!=a[i][j]) p[4]=true; } for(int i=1;i<=4;i++) if(!p[i]) { cout<<i;return 0; } cout<<'5'; }
13. Blurred Image Processing
#include<bits/stdc++.h> using namespace std; int n,m,a[101][101],b[101][101]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(i==1||i==n||j==1||j==m) b[i][j]=a[i][j]; else { double r=((double)a[i][j]+a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1])/5; b[i][j]=round(r); } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) cout<<b[i][j]<<' '; cout<<endl; } }
14. Interesting Minesweeping Game (Mine Number Calculation)
#include<bits/stdc++.h> using namespace std; char a[101][101]; int b[101][101]={0}; int main() { int n,m,i,j; cin>>n>>m; for(i=1;i<=n;++i) for(j=1;j<=m;++j) cin>>a[i][j]; for(i=1;i<=n;++i) { for(j=1;j<=m;++j) { if(a[i][j]=='?') { if(a[i-1][j]=='*') b[i][j]++; if(a[i+1][j]=='*') b[i][j]++; if(a[i][j+1]=='*') b[i][j]++; if(a[i][j-1]=='*') b[i][j]++; if(a[i-1][j-1]=='*') b[i][j]++; if(a[i-1][j+1]=='*') b[i][j]++; if(a[i+1][j-1]=='*') b[i][j]++; if(a[i+1][j+1]=='*') b[i][j]++; cout<<b[i][j]; } else cout<<'*'; } cout<<endl; } return 0; }
15. Propagation and Diffusion of Bacteria
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<string.h> using namespace std; int a[11][11]={0},b[11][11]={0}; int main () { int i,j,n,k; cin>>a[5][5]>>n; for(k=1;k<=n;k++) { for(i=1;i<=9;i++) for(j=1;j<=9;j++) { b[i][j]=a[i][j]*2+a[i+1][j]+a[i][j+1]+a[i-1][j]+a[i][j-1]+a[i+1][j+1]+a[i-1][j+1]+a[i-1][j-1]+a[i+1][j-1]; } for(i=1;i<=9;i++)for(j=1;j<=9;j++)a[i][j]=b[i][j]; } for(i=1;i<=9;i++) { for(j=1;j<=9;j++)cout<<b[i][j]<<" "; cout<<"\n"; } return 0; }
16. Matrix games (stone scissors)
#include<bits/stdc++.h> using namespace std; int a[11][11],b[11][11]; int main() { int n,m; cin>>m>>n; a[5][5]=m; while (n) { for(int i=1;i<=9;i++) { for(int j=1;j<=9;j++) { b[i][j]=a[i][j]*2+a[i-1][j-1]+a[i-1][j]+a[i-1][j+1]+a[i][j-1]+a[i+1][j]+a[i][j+1]+a[i+1][j-1]+a[i+1][j+1]; } } for(int i=1;i<=9;i++) { for(int j=1;j<=9;j++) { a[i][j]=b[i][j]; } } n--; } for(int i=1;i<=9;i++) { for(int j=1;j<=9;j++) { cout<<a[i][j]<<" "; } cout<<endl; } return 0; }
17.The best grass
#include <bits/stdc++.h> using namespace std; int main() { char a[101][101]; int R,C,s=0; cin>>R>>C; for (int i=1;i<=R;i++) { for (int j=1;j<=C;j++) { cin>>a[i][j]; } } for (int i=1;i<=R;i++) { for (int j=1;j<=C;j++) { if (a[i][j]=='#' && a[i-1][j]!='#' && a[i][j-1]!='#') { s++; } } } cout<<s; return 0; }
18. Tumor area
#include <bits/stdc++.h> using namespace std; int main() { int a,b,c,d,e,f,g,h,k,l,m,n,i,j,x; scanf("%d",&i); if(i==1||i==2) { printf("0"); return 0; } for(a=1,c=1001,d=-1,e=1001,f=-1;i>=a;++a) { for(b=1;i>=b;++b) { scanf("%d",&x); if(x==0) { if(a<c) { c=a; } if(b<e) { e=b; } if(a>d) { d=a; } if(b>f) { f=b; } } } } if(d-c-1>=0&&f-e-1>=0) { printf("%d",(d-c-1)*(f-e-1)); } else { printf("0"); } return 0; }
19. Tumor detection
#include<bits/stdc++.h> using namespace std; int n,a[1010][1010],ans,anss; int main() { cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if(a[i][j]<=50){ans++; if(a[i+1][j]>50||a[i-1][j]>50||a[i][j+1]>50||a[i][j-1]>50||i==1||i==n||j==1||j==n) anss++;} } cout<<ans<<" "<<anss<<endl; }
20. Repeated
#include <bits/stdc++.h> using namespace std; char a[11][21],b[300]; int main() { int i,j,m,n,len,k=0; cin>>n>>b; len=strlen(b); m=len/n; for(i=0;i<=m;i++) if(i%2==0) for(j=0;j<n;j++) a[i][j]=b[k++]; else for(j=n-1;j>=0;j--) a[i][j]=b[k++]; for(i=0;i<n;i++) for(j=0;j<m;j++) cout<<a[j][i]; return 0; }
21. Right-up-left-down traversal of two-dimensional arrays
#include<bits/stdc++.h> using namespace std; int r,c,a[101][101],s=0; int main() { cin>>r>>c; for(int i=0;i<=r-1;++i) for(int j=0;j<=c-1;++j) cin>>a[i][j]; for(int k=0;k<=r+c-2;k++) for(int i=0;i<=r-1;++i) for(int j=0;j<=c-1;++j) { if(i+j==k) cout<<a[i][j]<<endl; } return 0; }
22. Magic Fantasy
#include<bits/stdc++.h> using namespace std; int n,a[1010][1010],x=1,y; int main() { cin>>n; y=n; int u=(2*n)-1; a[x][y]=1; for(int i=1;i<=u*u;i++) { int q=x,w=y; if((x==1&&y==u)||(a[x-1][y+1]>0)) q++; else if(x==1){ q=u; w++; } else if(y>=u){ q--; w=1; } else if(x==q&&y==w){ q--; w++; } a[q][w]=i+1; x=q;y=w; } for(int i=1;i<=u;i++) { for(int j=1;j<=u;j++) cout<<a[i][j]<<" "; cout<<endl; } }
23.Double mine
#include<iostream> using namespace std; int a[100][100]; int n,m,r1,r2,c1,c2; int main() { cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; r1=1;r2=n;c1=1;c2=m; while(r1<=r2&&c1<=c2) { for(int j=c1;j<=c2;j++) cout<<a[r1][j]<<endl; for(int i=r1+1;i<=r2;i++) cout<<a[i][c2]<<endl; if(r1!=r2) for(int j=c2-1;j>=c1;j--) cout<<a[r2][j]<<endl; if(c1!=c2) for(int i=r2-1;i>r1;i--) cout<<a[i][c1]<<endl; r1=r1+1;r2=r2-1;c1=c1+1;c2=c2-1; } return 0; }
24.Snake mine
#include<bits/stdc++.h> using namespace std; int main() { int a[15][15]={0},n,i=1,j=1,tot=1,q=0; cin>>n; while(i<n||j<n) { if(i+j<=n){ while(i>1&&j<n){a[i][j]=tot;tot++;i--;j++;} a[i][j]=tot;tot++; j++; while(j>1&&i<n){a[i][j]=tot;tot++;j--;i++;} a[i][j]=tot;tot++; i++; if(i+j>n&&n%2==0){tot--;} } else{ while(i>1&&j<n){a[i][j]=tot;tot++;i--;j++;} a[i][j]=tot;tot++; i++; while(j>1&&i<n){a[i][j]=tot;tot++;j--;i++;} a[i][j]=tot;tot++; j++; } } a[i][j]=tot;tot++; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) cout<<a[i][j]<<' '; cout<<endl; } }
25. Spiral Encryption of Password
#include<iostream> #include<cmath> #include<cstdio> #include<cstring> using namespace std; int main() { int r,c,a[21][21],ba[81][5],y=0,x=0,dx=1,dy=0; memset(ba,0,sizeof(ba)); memset(a,-1,sizeof(a)); char b[81]; cin>>r>>c;getchar();gets(b); int dr=r-1,xr=1,dc=c-1,xc=0; for(int i=0;b[i];i++){ int z,j=4; if(b[i]==' '){z=0;ba[i][j]=0;}else z=b[i]-'A'+1; while(z!=0){ba[i][j]=z%2;z/=2;j--;} } for(int i=0;b[i];i++)for(int j=0;j<5;j++){ if(a[y][x]!=-1)break; a[y][x]=ba[i][j]; y+=dy;x+=dx; if(x==dc&&dx==1){dy=1;dx=0;dc--;} if(y==dr&&dy==1){dy=0;dx=-1;dr--;} if(x==xc&&dx==-1){dy=-1;dx=0;xc++;} if(y==xr&&dy==-1){dy=0;dx=1;xr++;} } for(int i=0;i<r;i++){ for(int j=0;j<c;j++) if(a[i][j]!=-1) cout<<a[i][j];else cout<<0; } }
If some code is longer, there may be a simpler way.
Thank you for reading! Like, please pay attention, thank you!
Topic-brushing website: noi.openjudge.cn