笔试题回顾:测试默契度,给出长度为n的序列,两人各选择一个[1,m]的整数, 设其中一个选l,另一个选r,最大值不超过m,求<l,r>一共多少种组合

这是一道关于算法的笔试题目,要求两个人从[1, m]中各自选择一个整数l和r,满足l≤r,并保持长度为n的序列在删除某些元素后形成的子序列单调不降。输入包括序列的最大值m和长度n,以及序列本身。目标是找出所有满足条件的<l, r>组合的数量。样例输入为m=5, n=5, 序列为4, 1, 4, 1, 2,样例输出为10。解题思路涉及序列分析和组合计算。" 87627105,8376467,Robei与Vivado联合设计实战:流水灯项目,"['Verilog', 'Vivado', 'FPGA设计', '硬件验证', '嵌入式开发']
摘要由CSDN通过智能技术生成

题目描述

测试默契度,给出长度为n的序列,最大值不超过m
两人各选择一个[1,m]的整数, 设其中一个选l,另一个选r
认定默契的需要满足以下条件:

  1. l小于等于r
  2. 对序列中的元素x,如果0<x<l 或r<x<m+1,则x按其顺序保存,要求保留下来的子序列是单调不下降

求<l,r>一共多少种组合

  • 输入:
    第一行包含两个正整数m,和n,表示序列元素的最大值和长度
    (1<m,n<100000)
    第二行包含n个正整数,表示序列
  • 输出:
    输出使得两人默契的二元组数量
  • 样例输入:
    5 5
    4 1 4 1 2
  • 样例输出:
    10

分析

按照逻辑一步步走

import java.util.*;

public class Main {
   
    public static void main(String[] args) {
   
        Scanner sc = new Scanner(System.in);
        String[] str = sc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值