您的位置:首页 > 理论基础

2011年浙江大学计算机及软件工程研究生机试真题

2015-04-04 14:05 459 查看
题目描述:

    This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns.
输入:

    The input consists of several test cases, each starts with a pair of positive integers M and N (≤10) which are the number of rows and columns of the matrices, respectively. Then 2*M lines follow, each contains N integers
in [-100, 100], separated by a space. The first M lines correspond to the elements of A and the second M lines to that of B.

    The input is terminated by a zero M and that case must NOT be processed.
输出:

    For each test case you should output in one line the total number of zero rows and columns of A+B.
样例输入:
2 2
1 1
1 1
-1 -1
10 9
2 3
1 2 3
4 5 6
-1 -2 -3
-4 -5 -6
0

样例输出:
1
5

#include<iostream>
using namespace std;

int main(){
const int N=10;
int m,n;
int e;
int a

,b

,c

;
while(cin>>m>>n){
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>a[i][j];
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>b[i][j];
c[i][j]=a[i][j]+b[i][j];
}
}

int row,col,cnt=0;
for(int i=0;i<m;i++){
row=0;
for(int j=0;j<n;j++){
if(0==c[i][j]){
row++;
}else{
break;
}
if(n==row){
cnt++;
}
}
}
for(int j=0;j<n;j++){
col=0;
for(int i=0;i<m;i++){
if(0==c[i][j]){
col++;
}else{
break;
}
if(m==col){
cnt++;
}
}
}

cout<<cnt<<endl;

}
return 0;
}


题目描述:

    Grading hundreds of thousands of Graduate Entrance Exams is a hard work. It is even harder to design a process to make the results as fair as possible. One way is to assign each exam problem to 3 independent experts. If they do not agree to each other,
a judge is invited to make the final decision. Now you are asked to write a program to help this process.

    For each problem, there is a full-mark P and a tolerance T(<P) given. The grading rules are:

    • A problem will first be assigned to 2 experts, to obtain G1 and G2. If the difference is within the tolerance, that is, if |G1 - G2| ≤ T, this problem's grade will be the average of G1 and G2.

    • If the difference exceeds T, the 3rd expert will give G3.

    • If G3 is within the tolerance with either G1 or G2, but NOT both, then this problem's grade will be the average of G3 and the closest grade.

    • If G3 is within the tolerance with both G1 and G2, then this problem's grade will be the maximum of the three grades.

    • If G3 is within the tolerance with neither G1 nor G2, a judge will give the final grade GJ.
输入:

    Each input file may contain more than one test case.

    Each case occupies a line containing six positive integers: P, T, G1, G2, G3, and GJ, as described in the problem. It is guaranteed that all the grades are valid, that is, in the interval [0, P].
输出:

    For each test case you should output the final grade of the problem in a line. The answer must be accurate to 1 decimal place.
样例输入:
20 2 15 13 10 18

样例输出:
14.0


#include<iostream>
#include<cmath>
using namespace std;

int main(){
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(1);

int P,T,G1,G2,G3,GJ;
float score;
while(cin>>P>>T>>G1>>G2>>G3>>GJ){
if(abs(1.0*(G1-G2))<=T)
score= 0.5*(G1+G2);
else if(abs(1.0*(G3-G1))<=T && abs(1.0*(G3-G2))<=T){
score=1.0*max(G1,max(G2,G3));
}
else if(abs(1.0*(G3-G1))<=T || abs(1.0*(G3-G2))<=T){
if(abs(1.0*(G3-G1))<=T)
score=0.5*(G1+G3);
else
score=0.5*(G2+G3);
}
else
score=1.0*GJ;

cout<<score<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐