首页 > 其他分享 >二维数组详解

二维数组详解

时间:2023-03-28 14:45:06浏览次数:38  
标签:输出 int 080 样例 二维 详解 数组 yym 输入

6928: yym下象棋

描述

 

yym是一个喜欢玩象棋的人,现在yym的棋盘上有一匹马,

如果你们不知道马的走法,请看下图:(棋盘大小为9*9)

2345_image_file_copy_2.jpg

现在,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

样例输出

 800 思路: 先计算三个分的总和,判断如果基础大于800,就加上进阶的分,再判断进阶如果大于400,就加上登顶的分
 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

样例输出

 YES 思路: 输入数据后,遍历每行、每列,如果有任何一行或一列的和等于x,就让f为1,遍历结束后就可以看f的结果输出yes或no
 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 }

 

标签:输出,int,080,样例,二维,详解,数组,yym,输入
From: https://www.cnblogs.com/jyssh/p/17265092.html

相关文章

  • 详解C# List<T>的Contains,Exists,Any,Where性能对比
    https://zxbcw.cn/post/201932/新建一个Person类1234567891011publicclassPerson  {    publicPerson(stringname,intid)    {......
  • SLF4J和Logback日志框架详解
    SLF4J和Logback日志框架详解作者:chszs本文讲述SLF4J和Logback日志框架。  SLF4J是一套简单的日志外观模式的JavaAPI,帮助在项目部署时对接各种日志实现。LogBack在运行时......
  • redis-cli 命令详解
    redis-cli命令详解  redis-cli命令使用命令使用redis-cli[OPTIONS][cmd[arg[arg...]]]选项说明-h<hostname>Serverhostname(default:127.0......
  • C#中虚方法(virtual)详解
    https://blog.csdn.net/qq_45096273/article/details/106816397一.虚方法的定义:当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法,虚方法是使用关键字virtu......
  • C# override详解
    https://blog.csdn.net/u011555996/article/details/106751111重载、重写、覆写,分别指的是overload、override、new。一、override重写,是在子类中重写父类中的方法,两个函......
  • JSON的基本使用(详解)
    一、什么是JSONJSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于Ja......
  • 【THM】DNS in detail(DNS基础详解)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/dnsindetail本文相关内容:了解DNS协议是如何工作的,以及DNS如何帮助我们访问互联网服务。什么是DNS?DNS指D......
  • iostat命令详解
    iostat命令详解iostat用于输出CPU和磁盘输入输出、分区、网络文件系统NFS相关的统计信息。iostat命令用于监控系统设备的输入/输出情况,并生成报告,以便根据统计报告修改系统......
  • Intent的简介以及属性的详解
    一.Intent的介绍Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述......
  • Java学习----稀疏数组
    稀疏数组当数组中大部分元素为0,或为同一值时,可用稀疏数组来保存。处理方式:记录数组一共有几行几列,有多少不同值。把具有不同值的元素和行列和值记录在小规模数组中......