二维数组详解
6928: yym下象棋
描述
yym是一个喜欢玩象棋的人,现在yym的棋盘上有一匹马,
如果你们不知道马的走法,请看下图:(棋盘大小为9*9)
现在,yym想要一步吃掉它周围的其他棋子(不考虑黑或红,且数据保证不存在拌马脚的情况)请问yym最多能有几种吃的方案。
输入
一个棋盘,“H”代表马,其他的代表其他象棋,且棋盘上只有一个马。
输出
yym的马能吃掉的棋子的个数。
样例输入
..........
..........
..........
....H.....
..........
..........
..........
..........
..........
样例输出
0
1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 char a[15][15]; 5 int main() 6 { 7 char c; 8 int j; 9 int x,y,tx,ty; 10 int nex[8][2] = {{-2,1}, {-1,2}, {1,2}, {2,1}, {2,-1}, {1,-2}, {-1,-2}, {-2,-1}}; 11 for(int i=1;i<=9;i++) 12 { 13 for(j=1;j<=9;j++) 14 { 15 cin>>a[i][j]; 16 if(a[i][j]=='H') 17 { 18 x = i; 19 y = j; 20 } 21 } 22 } 23 int sum=0; 24 for(int i=0;i<8;i++) 25 { 26 27 tx = x+nex[i][0]; 28 ty = y+nex[i][1]; 29 if(tx>9||tx<1||ty>9||ty<1)continue; 30 if(a[tx][ty]!='.') 31 sum++; 32 } 33 cout<<sum<<endl; 34 return 0; 35 }
5637: 天梯赛得分
描述
团体程序设计天梯赛是中国高校计算机大赛的竞赛版块之一,赛旨在提升学生计算机问题求解水平,增强学生程序设计能力,培养团队合作精神,提高大学生的综合素质,同时丰富校园学术气氛,促进校际交流,提高全国高校的程序设计教学水平。比赛重点考查参赛队伍的基础程序设计能力、数据结构与算法应用能力,并通过团体成绩体现高校在程序设计教学方面的整体水平。竞赛题目均为在线编程题,由搭建在网易服务器上的PAT在线裁判系统自动评判。难度分3个梯级:基础级、进阶级、登顶级。以个人独立竞技、团体计分的方式进行排名。
参赛队员可以在比赛中的任何时刻尝试解决任何梯级的题目。但只有当一支队伍的基础题总分超过 800 分时,其本队进阶部分的题目分数才被判为有效。只有当其进阶题总分超过 400 分时,其本队登顶部分的题目分数才被判为有效。
现在给出一个队伍(10人)中每人各个梯级的得分,问这个队伍总得分为多少?
输入
输入数据包含10行,每行为3个整数a、b和c,表示每个队员的基础级、进阶级和登顶级的得分情况。其中:
0<=a<=100
0<=b<=100
0<=c<=90
输出
输出这个队伍的总得分。
样例输入
80 0 0
80 0 0
80 0 0
80 0 0
80 0 0
80 0 0
80 0 0
80 0 0
80 0 0
80 20 0
样例输出
1 #include<bits/stdc++.h> 2 using namespace std; 3 int a[11][4]; 4 int s1,s2,s3; 5 int main() 6 { 7 for(int i=1;i<=10;i++) 8 cin>>a[i][1]>>a[i][2]>>a[i][3]; 9 for(int i=1;i<=10;i++){ 10 s1+=a[i][1];s2+=a[i][2];s3+=a[i][3]; 11 } 12 if(s1>800){ 13 s1+=s2; 14 if(s2>400)s1+=s3; 15 }cout<<s1; 16 return 0; 17 }
4983: 二维数组
描述
给定一个n行m列的二维数组,以及某个整数x,问二维数组中是否至少存在一行或一列,其元素之和恰好为x。
输入
输入数据的第一行为n,m,x(1<=n, m<=50)。
接下来有n行,每行有m个整数。
输出
如果二维数组中至少存在一行或一列,其元素之和为x,则输出YES,否则输出NO
样例输入
3 4 10
1 2 3 4
2 3 4 5
3 4 5 6
样例输出
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,x,a[55][55]; 4 int main(){ 5 cin>>n>>m>>x; 6 for(int i=1;i<=n;i++) 7 for(int j=1;j<=m;j++) 8 cin>>a[i][j]; 9 for(int i=1;i<=n;i++){ 10 int sum=0; 11 for(int j=1;j<=m;j++) 12 sum+=a[i][j]; 13 if(sum==x){ 14 cout<<"YES"<<endl; 15 return 0; 16 } 17 } 18 for(int j=1;j<=m;j++){ 19 int sum=0; 20 for(int i=1;i<=n;i++) 21 sum+=a[i][j]; 22 if(sum==x){ 23 cout<<"YES"<<endl; 24 return 0; 25 } 26 } 27 cout<<"NO"<<endl; 28 return 0; 29 }