2000年华中科技大学计算机研究生机试真题 对称矩阵

题目1180:对称矩阵

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:2518

解决:1295

题目描述:

输入一个N维矩阵,判断是否对称。

输入:

输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。
接下来的N行,每行包括N个数,表示N*N矩阵的元素。

输出:

可能有多组测试数据,对于每组数据,
输出"Yes!”表示矩阵为对称矩阵。
输出"No!”表示矩阵不是对称矩阵。

样例输入:
4
16 19 16 6
19 16 14 5
16 14 16 3
6 5 3 16
2
1 2
3 4
样例输出:
Yes!
No!
来源:
2000年华中科技大学计算机研究生机试真题
 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 using namespace std;
 5 int map[105][105];
 6 int main(){
 7     //freopen("D:\\INPUT.txt","r",stdin);
 8     int n;
 9     while(cin>>n){
10         int i,j;
11         for(i=1;i<=n;i++){
12             for(j=1;j<=n;j++){
13                 scanf("%d",&map[i][j]);
14             }
15         }
16         for(i=1;i<=n;i++){
17             for(j=1;j<=n;j++){
18                 if(map[i][j]!=map[i][n-j]){
19                     i=n+2;
20                     break;
21                 }
22             }
23         }
24         if(i==n+1){
25             cout<<"Yes!"<<endl;
26             continue;
27         }
28         for(i=1;i<=n;i++){
29             for(j=1;j<=n;j++){
30                 if(map[i][j]!=map[n-i][j]){
31                     i=n+2;
32                     break;
33                 }
34             }
35         }
36         if(i==n+1){
37             cout<<"Yes!"<<endl;
38             continue;
39         }
40
41         for(i=1;i<=n;i++){
42             for(j=1;j<=n;j++){
43                 if(map[i][j]!=map[j][i]){
44                     i=n+2;
45                     break;
46                 }
47             }
48         }
49         if(i==n+1){
50             cout<<"Yes!"<<endl;
51             continue;
52         }
53
54         for(i=1;i<=n;i++){
55             for(j=1;j<=n;j++){
56                 if(map[i][j]!=map[n-j][n-i]){
57                     i=n+2;
58                     break;
59                 }
60             }
61         }
62         if(i==n+1){
63             cout<<"Yes!"<<endl;
64             continue;
65         }
66         cout<<"No!"<<endl;
67     }
68     return 0;
69 }
时间: 2024-08-09 14:53:49

2000年华中科技大学计算机研究生机试真题 对称矩阵的相关文章

2000年华中科技大学计算机研究生机试真题 阶乘

题目1179:阶乘 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4993 解决:1464 题目描述: 输入n,求y1=1!+3!+...m!(m是小于等于n的最大奇数)y2=2!+4!+...p!(p是小于等于n的最大偶数). 输入: 每组输入包括1个整数:n 输出: 可能有多组测试数据,对于每组数据,输出题目要求的y1和y2 样例输入: 4 样例输出: 7 26 来源: 2000年华中科技大学计算机研究生机试真题 #include <iostream> #include <

蓝桥杯——计算机研究生机试真题(2017.2.20)

1. (2008年华中科技大学计算机研究生机试真题)八进制 题目描述: 输入一个整数,将其转换成八进制数输出. 输入: 输入包括一个整数N(0<=N<=100000). 输出: 可能有多组测试数据,对于每组数据, 输出N的八进制表示数. 样例输入: 7 8 9 样例输出: 7 10 11 法一:递归法: #include <stdio.h> void fun(int N) { if(N) { fun(N/8); printf("%d",N%8); } } int

九度机试 题目1165:字符串匹配 2008年北京航空航天大学计算机研究生机试真题

题目1165:字符串匹配 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2497 解决:858 题目描述: 读入数据string[ ],然后读入一个短字符串.要求查找string[ ]中和短字符串的所有匹配,输出行号.匹配字符串.匹配时不区分大小写,并且可以有一个用中括号表示的模式匹配.如"aa[123]bb",就是说aa1bb.aa2bb.aa3bb都算匹配. 输入: 输入有多组数据. 每组数据第一行输入n(1<=n<=1000),从第二行开始输入n个字符串(

题目1117:整数奇偶排序 (2008年北京大学图形实验室计算机研究生机试真题)

题目描述: 输入10个整数,彼此以空格分隔.重新排序以后输出(也按空格分隔),要求:1.先输出其中的奇数,并按从大到小排列:2.然后输出其中的偶数,并按从小到大排列. 输入: 任意排序的10个整数(0-100),彼此以空格分隔. 输出: 可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔. 样例输入: 4 7 3 13 11 12 0 47 34 98 样例输出: 47 13 11 7 3 0 4 12 34 98 提示: 1. 测试数据可能有很多组,请使用while(cin>>

考察数据类型的掌握---题目1166:迭代求立方根 (2009年北京航空航天大学计算机研究生机试真题)

题目描述: 立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x.求给定的x经过n次迭代后立方根的值. 输入: 输入有多组数据.每组一行,输入x n. 输出: 迭代n次后的立方根,double精度,保留小数点后面六位. 样例输入: 3000000 28 样例输出: 144.224957 #include "stdio.h" int main(int argc, char* argv[]) {     long n;     dou

数据结构与算法问题 堆栈使用 2011年吉林大学计算机研究生机试真题

题目描述: 堆栈是一种基本的数据结构.堆栈具有两种基本操作方式,push 和 pop.Push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出.现在我们就来验证一下堆栈的使用. 输入: 对于每组测试数据,第一行是一个正整数 n,0<n<=10000(n=0 结束).而后的 n 行,每行的第一个字符可能是'P'或者'O'或者'A':如果是'P',后面还会跟着一个整数,表示把这个数据压入堆栈:如果是'O',表示将栈顶的值 pop 出来,如果堆栈中没有元素时,忽略本次操作:如果是'A',表示询问

2000年清华大学计算机研究生机试真题

题目连接:点击打开链接 解题思路: 不可以用cin,会超时 完整代码: #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <set> using namespace std; const int INF = 1000000000; const int maxn = 10001; char s[maxn]; int main(

字符串去特定字符-2009年哈尔滨工业大学计算机研究生机试真题

题目描述: 输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果. 输入: 测试数据有多组,每组输入字符串s和字符c. 输出: 对于每组输入,输出去除c字符后的结果. 样例输入: heallo    a 样例输出: hello 解题代码: 解法1:使用两个数组, 第二个数组存储去掉特定字符的字符串 #include <stdio.h> int main(){ char arr[200]; char arrNew[200]; char focus; while (scanf("%

找x-2010年哈尔滨工业大学计算机研究生机试真题

题目描述: 输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1). 输入: 测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x. 输出: 对于每组输入,请输出结果. 样例输入: 2    1 3    0 样例输出: -1 解题代码: #include <stdio.h> int main(){ int n; int array[200]; while (scanf("%d"