Java 大学B组 第十届蓝桥杯 2019年国赛真题( 四 )

<= val) {if (val % start == 0) {buff[cur] = start;resolve(n, start, cur + 1, val / start, map, buff);}start++;}}static void calc(int n, int cur, Map map, int[] buff) {double total = 1;int i = 0;while (cur-- > 0)total *= Math.pow(prime[i++], buff[cur] - 1);if (map.get(n) == null || map.get(n) > total)map.put(n, total);}}
#F 最长子序列
时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分
问题描述
我们称一个字符串 S 包含字符串 T 是指 T 是 S 的一个子序列 , 即可以从字符串 S 中抽出若干个字符 , 它们按原来的顺序组合成一个新的字符串与 T 完全一样 。
给定两个字符串 S 和 T , 请问 T 中从第一个字符开始最长连续多少个字符被 S 包含?
输入格式
输入两行 , 每行一个字符串 。第一行的字符串为 S , 第二行的字符串为 T 。
两个字符串均非空而且只包含大写英文字母 。
输出格式
输出一个整数 , 表示答案 。
测试样例1
Input:ABCDEABCDAABZOutput:3
评测用例规模与约定
对于 20% 的评测用例 , 1 ≤ |T| ≤ |S | ≤ 20;
对于 40% 的评测用例 , 1 ≤ |T| ≤ |S | ≤ 100;
对于所有评测用例 , 1 ≤ |T| ≤ |S | ≤ 1000 。
code:
import java.io.IOException;import java.io.BufferedReader;import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader in = new BufferedReader(new InputStreamReader(System.in));String S = in.readLine();String T = in.readLine();int j = 0;for (int i = 0, ih = S.length(), jh = T.length(); i < ih && j < jh; i++)if (S.charAt(i) == T.charAt(j)) j++;System.out.println(j);}}
经典第一题友好
#G 数正方形
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
问题描述
在一个 N × N 的点阵上 , 取其中 4 个点恰好组成一个正方形的 4 个顶点 , 一共有多少种不同的取法?
由于结果可能非常大 , 你只需要输出模 109 + 7 的余数 。
如上图所示的正方形都是合法的 。
输入格式
输入包含一个整数 N 。
输出格式
输出一个整数代表答案 。
测试样例1
Input:4Output:20
评测用例规模与约定
对于所有评测用例 , 2 ≤ N ≤。
规律显然易见
code:
import java.io.IOException;import java.io.InputStream;public class Main {static final int mod = 1000000007;public static void main(String[] args) throws IOException {long n = nextInt(System.in);long res = ((n - 1)* (n - 1)) % mod;for (int i = 2; i < n; i++)res = (res + (((n - i) * (n - i)) % mod) * i) % mod;System.out.println(res);}static int nextInt(InputStream in) throws IOException {int n = 0, c = in.read();while (c < '0' || c > '9') c = in.read();while (c >='0' && c <='9') {n = n * 10 + (c & 0xf);c = in.read();}return n;}}
#H 大胖子走迷宫
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
问题描述
小明是个大胖子 , 或者说是个大大胖子 , 如果说正常人占用 1 × 1 的面积 , 小明要占用 5 × 5 的面积 。由于小明太胖了 , 所以他行动起来很不方便 。当玩一些游戏时 , 小明相比小伙伴就吃亏很多 。
小明的朋友们制定了一个计划 , 帮助小明减肥 。计划的主要内容是带小明玩一些游戏 , 让小明在游戏中运动消耗脂肪 。走迷宫是计划中的重要环节 。
朋友们设计了一个迷宫 , 迷宫可以看成是一个由 n × n 个方阵组成的方阵 , 正常人每次占用方阵中 1 × 1 的区域 , 而小明要占用 5 × 5 的区域 。小明的位置定义为小明最正中的一个方格 。迷宫四周都有障碍物 。