第十一届蓝桥杯校园赛---原题+解析+答案

5 篇文章 0 订阅
2 篇文章 0 订阅
  1. 填空题问题描述
    请问2019的二进制表示是多少?注意在提交的时候不要提交前导0。

    答案提交   
    这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个二进制数,在提交答案时只填写这个二进制数,填写多余的内容将无法得分。
    解题思路
    送分题 打开 计算器 切换到 程序员 输入2019 Ctrl + C Ctrl + V 删除前导向0 o了代码实现
    // Integer.toBinaryString(2019):返回int变量的二进制表示的字符串
    System.out.println(Integer.toBinaryString(2019));

答案 11111100011


  1. 填空题 :不知对错!!
    问题描述
      不超过19000的正整数中,与19000互质的数的个数是多少?

    答案提交
      这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
    解题思路
    互质数:公因数只有1的两个非零自然数,叫做互质数。
    19000包含有19,2和5这三个因数,从1开始对 2、5、19取余数,如果均不为0,则与19000互质!
    代码实现
public class Main {
	public static void main(String[] args) {
	  	int count=0;
		  for(int i = 1; i < 19000; i++) 
		  if(i % 2 != 0 && i % 5 != 0 && i % 19 != 0)
		  count++;
		  System.out.println(count);
	}
}

答案 7200


  1. .填空题 :不知对错!!
    问题描述
      一个包含有2019个结点的有向图,最多包含多少条边?(不允许有重边)

     答案提交
      这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
    解题思路:(结点数x(结点数-1))/2 (2019 * (2019 - 1)) / 2 = 2037171

答案 2037171


  1. 填空题 :不知对错!!
    问题描述
      一棵包含有2019个结点的树,最多包含多少个叶结点?

    答案提交
      这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
    解题思路:结点数/2+1 2019/2+1=1010

答案 1010


  1. 编程题
    问题描述
      给定一个单词,请使用凯撒密码将这个单词加密。
      凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即a变为d,b变为e,…,w变为z,x变为a,y变为b,z变为c。
      例如,lanqiao会变成odqtldr。

      输入格式
      输入一行,包含一个单词,单词中只包含小写英文字母。
    输出格式
      输出一行,表示加密后的密文。
    样例输入
    lanqiao
    样例输出
    odqtldr
    评测用例规模与约定
      对于所有评测用例,单词中的字母个数不超过100。
      
    解题思路
     Sorry,我做的麻烦了,都转成char类型了,直接+3后转回字母就可以了!
     当时思路
     接收的字符串转换char类型数组n,声明char类型的数组c保存26个字母,
     循环判断数组n的中字母与数组c中的字母是否想匹配,如果匹配则取出其在26个字母中的位置-1即该字母下标(因Java数组从0开始 所以需要-1),然后判断 该字母下标 +3 是否大于26 否输出 是则-26后输出
import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
     Scanner sc = new Scanner(System.in);
  char[] n = sc.next().toCharArray();
  char[] c = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
  for(int i = 0;i < n.length; i++) {
   int j = 0;
   while(true) {
    if(n[i] == c[j]) {
     if(j + 3 < c.length) {
      System.out.print(c[j+3]);
     }else{
      System.out.print(c[j+3-26]);
     }
     break;
    }
    j++;
   }
  } 
 }
}

  1. 编程题
    问题描述
      给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。
      元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。

    输入格式
      输入一行,包含一个单词,单词中只包含小写英文字母。
    输出格式
      输出两行,第一行包含一个整数,表示元音字母的数量。
      第二行包含一个整数,表示辅音字母的数量。
    样例输入
    lanqiao
    样例输出
    4
    3
    评测用例规模与约定
      对于所有评测用例,单词中的字母个数不超过100。
      
    解题思路
    接收的字符串转换char类型数组n,声明int类型变量a、b分别用于存放元音字母、辅音字母的数量。
    遍历数组n,使用switch 匹配至元音字母 a、e、i、o、u时a++否则b++;最后a、b输出!
import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  char[] c = sc.next().toCharArray();
  int a = 0,b = 0;
  for(int i = 0; i < c.length;i++) {
   switch(c[i]) {
    case 'a':a++;break;
    case 'e':a++;break;
    case 'i':a++;break;
    case 'o':a++;break;
    case 'u':a++;break;
    default: b++; 
   }
  }
  System.out.println(a+"\n"+b);
 }
}

  1. 问题描述
      输入一个单词,请输出这个单词中第一个出现的元音字母。
      元音字母包括 a, e, i, o, u,共五个。

    输入格式
      输入一行,包含一个单词,单词中只包含小写英文字母。
    输出格式
      输出一行包含一个字母,为单词中第一个出现的元素字母。若单词中不存在元音字母,输出字母n。
    样例输入
    hello
    样例输出
    e
    样例输入
    fly
    样例输出
    n
    评测用例规模与约定
      对于所有评测用例,单词中的字母个数不超过100。
      
    解题思路
    接收的字符串转换char类型数组c,声明String类型变量s为"n"(单词中不存在元音字母时输出字母n);遍历数组c,使用switch语句匹配到元音a、e、i、o、u中任意一位时当字母赋值给s,跳出循环,输出变量s;
import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  char[] c = sc.next().toCharArray();
  String s = "n";
  for(int i = 0; i < c.length; i++) {
   switch (c[i]) {
    case 'a':s = "a";break;
    case 'e':s = "e";break;
    case 'i':s = "i";break;
    case 'o':s = "o";break;
    case 'u':s = "u";break;
   }
   if(s != "n")break;
  }
  System.out.println(s);
 }
}

  1. 编程题:此题不会 没有思路 请路过的大神支招!!
    题目描述
    问题描述
      如果一个序列的奇数项都比前一项大,偶数项都比前一项小,则称为一个摆动序列。即 a[2i]<a[2i-1], a[2i+1]>a[2i]。
      小明想知道,长度为 m,每个数都是 1 到 n 之间的正整数的摆动序列一共有多少个。

    输入格式
      输入一行包含两个整数 m,n。
    输出格式
      输出一个整数,表示答案。答案可能很大,请输出答案除以10000的余数。
    样例输入
    3 4
    样例输出
    14
    样例说明
      以下是符合要求的摆动序列:
      2 1 2
      2 1 3
      2 1 4
      3 1 2
      3 1 3
      3 1 4
      3 2 3
      3 2 4
      4 1 2
      4 1 3
      4 1 4
      4 2 3
      4 2 4
      4 3 4
    评测用例规模与约定
      对于 20% 的评测用例,1 <= n, m <= 5;
      对于 50% 的评测用例,1 <= n, m <= 10;
      对于 80% 的评测用例,1 <= n, m <= 100;
      对于所有评测用例,1 <= n, m <= 1000。
  2. 编程题
    题目描述
    问题描述
      一个平面向量表示从一个坐标点到另一个坐标点的变化量,一般用两个数 (x, y) 来表示。
      两个向量相加是指分别将对应的两个数相加,例如 (x_1, y_1) 与 (x_2, y_2) 相加后得 (x_1+x_2, y_1+y_2)。
      如果两个向量相加后,得到的向量两个值相等,我们称这两个向量为和谐向量对。例如 (3, 5) 和 (4, 2) 是和谐向量对。
      给定 n 个向量,问能找到多少个和谐向量对?

    输入格式
      输入的第一行包含一个整数 n,表示向量的个数。
      接下来 n 行,每行两个整数 x_i, y_i,表示一个向量。
    输出格式
      输出一行,包含一个整数,表示有多少个和谐向量对。
      请注意,自己和自己不能成为一个和谐向量对。
    样例输入
    5
    9 10
    1 3
    5 5
    5 4
    8 6
    样例输出
    2
    样例输入
    4
    1 1
    2 2
    1 1
    2 2
    样例输出
    6
    样例说明
      每两个向量组成一个和谐向量对。
    评测用例规模与约定
      对于 70% 的评测用例,1 <= n <= 1000;
      对于所有评测用例,1 <= n <= 100000,-1000000 <= x_i, y_i <= 1000000。
      请注意答案可能很大,可能需要使用 long long 来保存。
    解题思路
    接收int类型n;声明long类型的二维数组l(第一维下标n,第二维下标2(0存x,1存y));
    遍历数组l为每个元素赋值,声明long类型count用于存储 和谐向量对 的数量;
    双层遍历数组,取l数组元素 内层为外层+1; 即外层X为 l[0][0] 时 内层x为 l[1][0],
    外层y为 l[0][1] 时 内层y为 l[1][1]; 声明 long 类型变量x(外层x + 内层x)与 y(外层y + 内层y);
    判断 x 是否等于 y,相等则是和谐向量对,变量count+1;循环结束后输出 count
import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  int n = sc.nextInt();
  long[][] l = new long[n][2];
  for(int i = 0; i < n; i++) {
   l[i][0]=sc.nextLong();
   l[i][1]=sc.nextLong();
  }
  long count = 0;
  for(int i = 0; i < n; i++) {
   for(int j = i + 1; j < n;j++) {
    long x = l[i][0] + l[j][0];
    long y = l[i][1] + l[j][1];
    if(x == y)
     count++;
   }
  }
  System.out.println(count);
 }
}

  1. 编程题:此题不会 没有思路 请路过的大神支招!!
    题目描述
    问题描述
      小明和朋友们一起去郊外植树,他们带了一些在自己实验室精心研究出的小树苗。
      小明和朋友们一共有 n 个人,他们经过精心挑选,在一块空地上每个人挑选了一个适合植树的位置,总共 n 个。他们准备把自己带的树苗都植下去。
      然而,他们遇到了一个困难:有的树苗比较大,而有的位置挨太近,导致两棵树植下去后会撞在一起。
      他们将树看成一个圆,圆心在他们找的位置上。如果两棵树对应的圆相交,这两棵树就不适合同时植下(相切不受影响),称为两棵树冲突。
      小明和朋友们决定先合计合计,只将其中的一部分树植下去,保证没有互相冲突的树。他们同时希望这些树所能覆盖的面积和(圆面积和)最大。

    输入格式
      输入的第一行包含一个整数 n ,表示人数,即准备植树的位置数。
      接下来 n 行,每行三个整数 x, y, r,表示一棵树在空地上的横、纵坐标和半径。
    输出格式
      输出一行包含一个整数,表示在不冲突下可以植树的面积和。由于每棵树的面积都是圆周率的整数倍,请输出答案除以圆周率后的值(应当是一个整数)。
    样例输入
    6
    1 1 2
    1 4 2
    1 7 2
    4 1 2
    4 4 2
    4 7 2
    样例输出
    12
    评测用例规模与约定
      对于 30% 的评测用例,1 <= n <= 10;
      对于 60% 的评测用例,1 <= n <= 20;
      对于所有评测用例,1 <= n <= 30,0 <= x, y <= 1000,1 <= r <= 1000。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值