简答题

课程名称:蓝桥C++

题目:简易炸弹超人 【题目描述】 有一块矩形游戏场地,场地被分成N×M的网格(4≤N≤100 ,4≤M≤10),其中一部分小方格是水域,另一部分小方格是陆地。 为防御敌军攻击,玩家需要在游戏场地安置炸弹: 1. 炸弹只能安置在陆地上; 2. 每颗炸弹爆炸后,可以波及到炸弹所在的小方格,及相邻的上、下、左、右小方格; 3. 任意两颗炸弹爆炸后不能波及到同一个小方格。 请帮助玩家计算出如何安置炸弹,可以使炸弹波及到的范围最大,输出最多可以波及到的小方格数量。 例如:N=4,M=4,网格中水域和陆地的情况如图1所示: 图中,蓝色区域代表水域,绿色区域代表陆地;安置炸弹的最优方案之一如图2所示;炸弹波及的范围如图3所示(黑色区域)。 这块4×4的矩形游戏场地最多可以波及到11个小方格,其他方案都不会优于这个结果 【输入格式】 第一行输入两个正整数N和M(4≤N≤100 ,4≤M≤10 ),分别表示网格的行数和列数,两个正整数之间以一个空格隔开 接下来输入N行,每行M个字符(字符只能是大写字母A或B),A表示水域,B表示陆地,字符之间以一个空格隔开. 【输出格式】 输出一个整数,表示最多可以波及到的小方格数量 【样例输入】 4 4 B A A A A B A B B A B B A B A A 【样例输出】 11

简答题

课程名称:蓝桥C++

题目:收集宝石 题目描述: 聪聪在玩冒险岛游戏,为了召唤法力更强大的神龙,他必须尽可能收集更多的魔法宝石,每颗宝石都有不同的功效。不过在游戏里,几乎每一颗魔法宝石都会和另外一颗宝石相冲。相冲表示这两颗宝石不能同时拥有。例如,宝石A和宝石B 相冲,那么,你可以选择两颗宝石都不收集,也可以只收集宝石A 或者只收集宝石 B,但不能同时拥有宝石 A和宝石B现在给定了游戏里宝石的数量N(2≤N≤100),宝石从1到N依次编号,并给出M对(2≤M≤2000)相冲的宝石编号,请帮聪聪计算出最多能够收集到多少颗宝石。 例如: N=6,M=8时,6颗宝石的编号分别为 1、2、3、4、5、6,其中有8对相冲的宝石,对应编号如下: 1 2 2 3 2 4 2 5 2 6 3 4 4 5 5 6 这表示宝石1和宝石2相冲,宝石2和宝石3,4,5都相冲,宝石3和宝石4相冲,宝石4和宝石5相冲,宝石5和宝石6 相冲。 有三个方案收集到的宝石数量最多: (1 3 5)、(1 3 6)、(1 4 6),这些方案里,最多收集到的宝石数量都是3,所以程序输出3。 输入描述 第一行输入两个正整数N和 M(2≤N≤100,2≤M≤2000),分别表示游戏里的宝石数量和 M 对相冲的宝石,两个正整数之间用一个空格隔开。 接下来输入 M 行,每行两个正数,分别表示相冲的两颗宝石的编号,两个正整数之间用一个空格隔开 输出描述 输出一个整数,表示聪聪在游戏里最多能够收集到的宝石数量 样例输入 6 8 1 2 2 3 2 4 2 5 2 6 3 4 4 5 5 6 样例输出 3