第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-3

简介: 第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)

H、走方格

本题总分:20 分


【问题描述】


在平面上有一些二维的点阵。


这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,


从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示。


现在有个人站在第 1 行第 1 列,要走到第 n 行第 m 列。只能向右或者向下走。


注意,如果行号和列数都是偶数,不能走入这一格中。


问有多少种方案。


【输入格式】


输入一行包含两个整数 n, m。


【输出格式】


输出一个整数,表示答案。


【样例输入】


3 4

【样例输出】


2

【样例输入】


6 6

【样例输出】


0

【评测用例规模与约定】


对于所有评测用例,1 ≤ n ≤ 30, 1 ≤ m ≤ 30。


题解:


package action;
import java.util.Scanner;
public class demo {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int m = sc.nextInt();
    int[][] dp = new int[n + 1][m + 1];
    for (int i = 1; i <= n; i++) {
      dp[i][1] = 1;
    }
    for (int i = 1; i <= m; i++) {
      dp[1][i] = 1;
    }
    for (int i = 2; i <= n; i++) {
      for (int j = 2; j <= m; j++) {
        if (i % 2 == 0 && j % 2 == 0)
          continue;
        else
          dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
      }
    }
    System.out.println(dp[n][m]);
  }
}

I、字符串编码


本题总分:25 分


【问题描述】


小明发明了一种给由全大写字母组成的字符串编码的方法。

对于每一个大写字母,小明将它转换成它在 26 个英文字母中序号,

即 A → 1, B → 2, … Z →26。


这样一个字符串就能被转化成一个数字序列:


比如 ABCXYZ → 123242526。


现在给定一个转换后的数字序列,小明想还原出原本的字符串。


当然这样的还原有可能存在多个符合条件的字符串。小明希望找出其中字典序最大的字符串。


【输入格式】


一个数字序列。


【输出格式】


一个只包含大写字母的字符串,代表答案


【样例输入】


123242526


【样例输出】


LCXYZ


【评测用例规模与约定】


对于 20% 的评测用例,输入的长度不超过 20。


对于所有评测用例,输入的长度不超过 200000。


题解:

package action;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class demo {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    char[] c = input.next().toCharArray();
    input.close();
    int n = c.length;
    List<String> list = new ArrayList<>();
    int i = 0;
    while (i < n) {
      if (c[i] == '0') {
        i++;
        continue;
      }
      if (i + 1 < n) {
        int a = Integer.parseInt("" + c[i] + c[i + 1]);
        if (a < 27) {
          list.add("" + (char) (a + 'A' - 1));
          i += 2;
        } else {
          list.add("" + (char) (Integer.parseInt(c[i] + "") + 'A' - 1));
          i++;
        }
      } else {
        list.add("" + (char) (Integer.parseInt(c[i] + "") + 'A' - 1));
        i++;
      }
    }
    for (int k = 0; k < list.size(); k++) {
      System.out.print(list.get(k));
    }
  }
}

J、 整数小拼接


本题总分:25 分


【问题描述】


给定义个长度为 n 的数组 A1, A2, · · · , An。你可以从中选出两个数 Ai 和 Aj (i 不等于 j),然后将 Ai 和 Aj 一前一后拼成一个新的整数。


例如 12 和 345 可以拼成 12345 或 34512 。


注意交换 Ai 和 Aj 的顺序总是被视为 2 种拼法,即便


是 Ai = Aj 时。


请你计算有多少种拼法满足拼出的整数小于等于 K。


【输入格式】


第一行包含 2 个整数 n 和 K。


第二行包含 n 个整数 A1, A2, · · · , An。


【输出格式】


一个整数代表答案。


【样例输入】


4 33


1 2 3 4


【样例输出】


8

【评测用例规模与约定】


对于 30% 的评测用例,1 ≤ N ≤ 1000, 1 ≤ K ≤ 108, 1 ≤ Ai ≤ 104。


对于所有评测用例,1 ≤ N ≤ 100000,1 ≤ K ≤ 1010,1 ≤ Ai ≤ 109。


题解:


package action;
import java.util.Scanner;
public class demo {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int K = sc.nextInt();
    int[] arr = new int[n + 1];
    for (int i = 1; i < arr.length; i++) {
      arr[i] = sc.nextInt();
    }
    int count = 0;
    for (int i = 1; i < arr.length - 1; i++) {
      for (int j = i + 1; j < arr.length; j++) {
        if (i == j) {
          continue;
        }
        if (arr[i] >= 100) {
          break;
        }
        int x = 0;
        if (arr[i] / 10 == 0) {
          x = 1;
        } else {
          x = 2;
        }
        int y = 0;
        if (arr[j] / 10 == 0) {
          y = 1;
        } else {
          y = 2;
        }
        if (arr[i] * Math.pow(10, y) + arr[j] <= K) {
          count++;
        }
        if (arr[j] * Math.pow(10, x) + arr[i] <= K) {
          count++;
        }
      }
    }
    System.out.println(count);
  }
}

测试数据:

4 33
 1 2 3 4

image.png

测试数据通过。

相关文章
|
5月前
|
机器学习/深度学习 人工智能 测试技术
第十三届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
第十三届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
353 0
|
数据安全/隐私保护
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-1
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
89 0
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-1
|
测试技术
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-2
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
98 0
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-2
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-3
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
197 0
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-3
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-2
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
88 0
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-2
|
算法
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-1
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
1911 0
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-1
第八届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-3
第八届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
141 0
第八届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-3
|
机器学习/深度学习 测试技术
第十届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)-2
第十届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)
139 0
第十届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)-2
|
人工智能
第十届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)-1
第十届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)
225 0
第十届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)-1
第八届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)-2
第八届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)
152 0
第八届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)-2