首页 > 试题广场 >

小O的子序列最值(二)

[编程题]小O的子序列最值(二)
  • 热度指数:78 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\,\,\,\,\,\,\,\,\,\,小O有两个长度为 n 的数组,现在她想从这两个数组中分别选出一个非空子序列,使得从第一个数组中选出的子序列的最大值不大于从第二个数组中选出的子序列的最小值。
\,\,\,\,\,\,\,\,\,\,小红想知道有多少种选取方法。
\,\,\,\,\,\,\,\,\,\,如果数组 a 可以通过删除数组 b 中的若干(可能为零或全部)元素得到,则数组 a 是数组 b子序列


输入描述:
\,\,\,\,\,\,\,\,\,\,第一行输入一个整数 n\ (1 \leq n \leq 10^5 ) 代表数组的长度。
\,\,\,\,\,\,\,\,\,\,第二行输入 n 个整数 a_1,a_2,\dots,a_n\ (1 \leq a_i \leq 10^9 ) 代表第一个数组。
\,\,\,\,\,\,\,\,\,\,第三行输入 n 个整数 b_1,b_2,\dots,b_n\ ( 1 \leq b_i \leq 10^9 ) 代表第二个数组。


输出描述:
\,\,\,\,\,\,\,\,\,\,在一行上输出一个整数,表示答案对 10^9+7 取模的结果。
示例1

输入

2
1 2
3 4

输出

9

说明

第一个数组选取任意非空子序列,第二个数组选取任意非空子序列,共 9 种选法。
头像 有胆量的柯基在学习
发表于 2025-08-23 15:30:37
#include <bits/stdc++.h> using namespace std; const int MOD = 1e9 + 7; int main() { int n; cin >> n; vector<long long> 展开全文
头像 丨阿伟丨
发表于 2025-09-11 17:48:11
题目链接 小O的子序列最值(二) 题目描述 给定两个长度为 的数组 和 。 需要从这两个数组中分别选出一个非空的子序列,我们称之为 和 。 要求满足条件: 的最大值不大于 的最小值。 求解总共有多少种满足条件的选取方法,答案需要对 取模。 解题思路 这是一个组合计数问题。直接枚举所有子序列 展开全文