题目A
题目描述:
给定两个非负整数 A 和 B,以字符串形式输入,计算 A*B 的结果,并以字符串形式输出。输入的整数长度不超过 1000 位。
输入格式:
第一行,包含一个字符串 A。
第二行,包含一个字符串 B。
输出格式:
输出一个字符串,表示 A×B 的结果。
样例:
输入:
123
456
输出:
56088
样例解释:
123*456=56088。
题目B
题目描述:
给定一个主字符串 S 和一个模式字符串 T,在主字符串中找到所有模式字符串的出现位置,并统计出现的次数。同时,要求统计每个出现位置的下一个字符在主字符串中出现的次数。字符串长度均不超过 10000。
输入格式:
第一行,包含一个字符串 S。
第二行,包含一个字符串 T。
输出格式:
一共两行:
第一行一个数,表示表示模式字符串 T 在主字符串 S 中出现的次数。
第二行包含若干个数,表示每个出现位置的下一个字符在主字符串中出现的次数列表(具体见样例)。
样例:
输入:
abababc
aba
输出:
2
2 1
样例解释:
“aba” 在 “abababc” 中出现 2 次,第一次出现位置的下一个字符 'b' 出现 2 次,第二次出现位置的下一个字符 'b' 出现 1 次。
题目C
题目描述:
给定 n 个区间 [li,ri],其中 1≤i≤n,请将所有重叠的区间合并,并统计合并后区间的总长度。此外,计算每个合并后区间内所有整数的平方和。 1≤n≤1000,1≤li≤ri≤10000。
输入格式:
第一行,包含一个整数 n,表示区间的数量。
接下来 n 行,每行包含两个整数 li 和 ri,表示第 i 个区间的左右端点。
输出格式:
输出两行两个值,第一个值为合并后区间的总长度,第二个值为所有合并后区间内整数平方和的总和。
样例:
输入:
3
1 3
2 4
5 7
输出:
6 66
样例解释:
合并后的区间为 [1, 4] 和 [5, 7],总长度为 (4 - 1 + 1) + (7 - 5 + 1) = 6,区间内整数平方和为 (1² + 2² + 3² + 4²) + (5² + 6² + 7²) = 66。
题目D:
题目描述:
给定一个有 n 个节点和 m 条边的无向加权图,计算该图的最小生成树的总权重。同时,对于 q 个查询,每个查询包含两个节点 u 和 v,请返回在最小生成树中从节点 u 到节点 v 的路径上的最大边权重。 1≤n≤1000,1≤m≤10000,1≤q≤1000,边的权重范围是 [1,1000]。
输入格式:
第一行,包含两个整数 n 和 m,分别表示节点数和边数。接下来 m行,每行包含三个整数 u,v 和 w,表示节点 u 和 v 之间有一条权重为 w 的边。第 m+2 行,包含一个整数 q,表示查询的数量。接下来 q 行,每行包含两个整数 u 和 v,表示查询的两个节点。
输出格式:
第一行,输出最小生成树的总权重。接下来 q 行,每行输出一个整数,表示对应查询路径上的最大边权重。
样例:
输入:
4 5
1 2 1
1 3 3
2 3 2
2 4 4
3 4 5
2
1 4
2 3
输出:
7
3
2
样例解释
最小生成树包含边 (1, 2, 1),(2, 3, 2),(2, 4, 4),总权重为 1 + 2 + 4 = 7。从 1 到 4 路径上最大边权重为 3,从 2 到 3 路径上最大边权重为 2。
题目E:
题目描述:
给定一个整数 N 和一个整数 K,你需要构造一个长度为 N 的正整数序列 a1,a2,⋯,aN,使得对于任意的 1≤i<j≤N,ai 和 aj 的最大公约数不超过 K,并且序列中所有元素的乘积最大。输出这个最大的乘积对 10^9+7 取模的结果。 1≤N≤1000,1≤K≤100。
输入格式:
一行,包含两个整数 N 和 K。
输出格式:
输出一个整数,表示满足条件的最大乘积对 10^9+7 取模的结果。
样例:
输入:
3 2
输出:
15
样例解释:
可以构造序列 [3, 5, 1],其乘积为 3×5×1 = 15,对 10^9+7 取模后仍为 15。