由于之前1.1~1.7的题解有太多人发了,于是我干脆就直接跳过了前面的,直接从1.8开始发啦。
C++版AC代码奉上。刷题网址:noi.openjudge.cn
(本文为完整版,T1-T25全有。)
01:矩阵交换行
#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.同行列对角线的格子
#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:计算矩阵边缘元素之和
#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:错误探测
#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:计算鞍点
#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:图像相似度