问题 AZ: 找朋友
时间限制: 1.000 Sec 内存限制: 64 MB题目描述
小T喜欢和自己同龄的人交朋友,现在他排在了一个n行m列的队伍中。请问在小T所在的行和小T所在的列中,他一共能交到几个朋友?
比如:一个6行6列的矩阵如下,该矩阵中每个数字代表了一个同学的年龄。
8 | 9 | 7 | 9 | 5 | 3 |
2 | 9 | 15 | 9 | 9 | 12 |
21 | 3 | 4 | 6 | 7 | 9 |
10 | 10 | 8 | 2 | 3 | 6 |
5 | 4 | 2 | 9 | 5 | 10 |
9 | 11 | 2 | 9 | 5 | 7 |
假设小T在第2行第4列对应的位置,也就是他的年龄是9岁,他所在的第2行除了小T还有2个人是9岁,他所在的列除了小T有3个人是9岁,因此他可以交到5个朋友。
输入
第1行有2个整数n和m,分别代表队形的行和列的值(2<=n,m<=200)
接下来n行,每行有m个整数,代表每个同学的年龄(每个同学的年龄的值在1~100之间)
接下来最后一行有2个整数,代表小T在第几行第几列
输出
输出一个整数,代表小T可以交到的朋友的数量。
样例输入 Copy
8 9 7 9 5 3
2 9 15 9 9 12
21 3 4 6 7 9
10 10 8 2 3 6
5 4 2 9 5 10
9 11 2 9 5 7
2 4
样例输出 Copy
5
cin >> n >> m;
for()//n行
{
for()//m列
{cin >> a[i][j];}
}
cin >> x >> y;//小T在a[x][y] ,所在的行是第x行,所在的列是第y列
for(i = 1;i <= m;i++)//i表示列的变化,其实是判断第x行
{
判断a[x][i]是否和a[x][y]相等
}
for(i = 1;i <= n;i++)//i表示行的变化,其实是判断第y列
{
判断a[i][y]和a[x][y]是否相等
}
#include<bits/stdc++.h>
#define MX 200
using namespace std;
int a[MX + 10][MX + 10];
int main()
{
int n,m,i,j,x,y,cnt = 0;
cin >> n >> m;
for(i = 1;i <= n;i++)
{
for(j = 1;j <= m;j++)
{
cin >> a[i][j];
}
}
cin >> x >> y;//小T在a[x][y] ,所在的行是第x行,所在的列是第y列
for(i = 1;i <= m;i++)//i表示列的变化,其实是判断第x行
{
if(a[x][i] == a[x][y])//判断a[x][i]是否和a[x][y]相等
{
cnt++;
}
}
for(i = 1;i <= n;i++)//i表示行的变化,其实是判断第y列
{
if(a[i][y] == a[x][y])//判断a[i][y]和a[x][y]是否相等
{
cnt++;
}
}
cout << cnt - 2 << endl;
return 0;
}