2022年9月27日每日一练 选择客栈 数学-简单

2023-11-04

题目:

丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到 n 编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~
k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。
两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过
p 。 他们想知道总共有多少种选择住宿的方案,保证晚上可以找到一家最低消费不超过 p 元的咖啡店小聚。 `` 输入描述: 共n+1 行。
第一行三个整数 n ,k ,p ,每两个整数之间用一个空格隔开,分别表示客栈的个数,色调的数目和能接受的最低消费的最高值; 接下来的 n
行,第 i+1 行两个整数,之间用一个空格隔开,分别表示 i 号客栈的装饰色调和 i 号客栈的咖啡店的最低消费。

输出描述:

一个整数,表示可选的住宿方案的总数。

示例

示例1 输入

5 2 3
0 5
1 3
0 2
1 4
1 5
输出 3

package org.dt.practice;
// 请关闭中文输入法,用英文的字母和标点符号。
// 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
// 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
// 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
// 模版代码提供基本的输入输出框架,可按个人代码习惯修改

import java.util.*;

class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        String str_0 = scan.nextLine();
        String[] line_list_0 = str_0.trim().split(" ");
        ArrayList<Integer> arr_temp = new ArrayList<>();
        for (int i = 0; i < line_list_0.length; i++) {
            arr_temp.add(Integer.parseInt(line_list_0[i]));
        }


        int n = arr_temp.get(0);
        int k = arr_temp.get(1);
        int p = arr_temp.get(2);


        ArrayList<ArrayList<Integer>> vector = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            String str_3 = scan.nextLine();
            String[] line_list_3 = str_3.trim().split(" ");
            ArrayList<Integer> temp_3 = new ArrayList<>();
            for (int j = 0; j < line_list_3.length; j++) {
                temp_3.add(Integer.parseInt(line_list_3[j]));
            }
            vector.add(temp_3);
        }


        scan.close();

        int result = solution(n, k, p, vector);

        System.out.println(result);

    }

    /**
     * @param n      客栈数量
     * @param k      颜色种类
     * @param p      最高预算
     * @param vector List<int,int> 颜色  : 最低消费
     * @return
     */
    public static int solution(int n, int k, int p, ArrayList<ArrayList<Integer>> vector) {
        int result = 0;
        // TODO: 请在此编写代码
        //遍历所有住店的可能,
        List<List<Integer>> lists = new ArrayList<>();

        for (int i = 0; i < vector.size() - 1; i++) {
            // 获取颜色
            Integer color = vector.get(i).get(0);
            for (int i1 = i + 1; i1 < vector.size(); i1++) {
                Integer color1 = vector.get(i1).get(0);
                //如果颜色相同,储存两个数字的位置
                if (color == color1) {
                    List<Integer> list = new ArrayList<>();
                    list.add(i);
                    list.add(i1);
                    lists.add(list);
                }
            }
        }

        // [[0, 2], [1, 3], [1, 4], [3, 4]]
        //计算所有可能中,符合条件的值
        for (int i = 0; i < lists.size(); i++) {
            Integer startPoint = lists.get(i).get(0);
            Integer endPoint = lists.get(i).get(1);
            for (int i1 = startPoint; i1 <= endPoint; i1++) {
                // 客栈最低消费
                Integer minimumConsumption = vector.get(i1).get(1);
                if(p > minimumConsumption)
                    result++;
            }

        }

        System.out.println(lists);


        return result;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022年9月27日每日一练 选择客栈 数学-简单 的相关文章

随机推荐

  • Python 的reload()方法

    reload 函数将以前导入过的模块再加载一次 重新加载 reload 包括最初导入模块时应用的分析过程和初始化过程 这样就允许在不退出解释器的情况下重新加载已更改的Python模块 若干注意事项 1 如果模块在语法上是正确的 但在初始化过
  • 攻防世界_Crypto_sherlock

    攻防世界刷题记录Crypto篇 文章目录 攻防世界刷题记录Crypto篇 前言 解题步骤 1 筛选出文中的大写字母 2 借助Python处理字符串 总结 前言 继续高手进阶区题目 sherlock 咦 夏洛克 下载题目附件得到的是一个内容很
  • Docker root用户的pip使用方法

    Docker下root用户 pip install XX 显示pip命令不存在 原始目标 pip install XX pip install root user action ignore XX 要安装的包 参考 WARNING Runn
  • JavaScript中的正则表达式

    ECMAScript 通过RegExp类型来支持正则表达式 测试的方法 pattern test str 或 pattern exec str 其中str 是待匹配的字符串 pattern 是正则表达式 JavaScript 中的正则表达式
  • 找不到msvcp140.dll无法继续执行代码怎么解决?分享三个解决方法

    当你在运行某个程序或游戏时遇到msvcp140 dll缺失的错误提示 你可能会感到困惑和烦恼 在修复msvcp140 dll的过程中 我遇到了一些挑战 但最终成功解决了这个问题 以下是我总结的三个解决方法 希望能帮助你解决这个问题 找不到m
  • sklearn中的归一化方法StandardScaler中的fit、transform和fit_transform

    StandardScaler类 常用的数据归一化方式 减去平均值 然后通过标准差映射到均至为0的空间内 系统会记录每个输入参数的平均数和标准差 以便数据可以还原 sklearn preprocessing StandardScaler能够轻
  • 【极速版】vite安装配置ceisum教程

    Hello大家好 今天带来的是vite版本的cesium的安装教程 借助一个国人大佬写的插件vite plugin cesium 安装非常简单快捷 一起来看看吧 1 安装vite插件 官网 https github com nshen vi
  • opencv遍历彩色图像、灰度图像像素值的方法

    https www bbsmax com A RnJWZb2ozq
  • 嵌套滑动学习

    我们知道两个同一方向的可以滑动的View 如果不做任何处理 会出现滑动冲突 处理滑动冲突我们有内部和外部拦截法 如果有朋友还不知道事件分发的原理可以看包括滑动冲突的拦截事件分发源码的学习分享 处理滑动冲突之后还是存在缺陷 比如一次滑动操作父
  • JavaScript面试题

    1 数据类型有哪几种 检测方法是什么 基本数据类型 ES5 Number Boolean String Undefined Null ES6新增 symbol 引用数据类型 Object 检测方法4种 1 Object prototype
  • 无向图和有向图

    1 无向图 两点之间的边没有方向 点 Vertex 简称V 边 Edge 简称E 2 有向图 两点之间的边是有方向的 有多少边以某点为出发点 则有多少的出度 同理有多少边以某点为终点则有多少入度 度 出度 入度 3 邻接矩阵 用G V E
  • 几种常用回归算法的比较

    type introduce example k nearest neighbors 原理 是一种常用的监督学习方法 给定测试样本 基于某种距离度量找出训练集中与其最靠近的k个训练样本 然后基于这k个 邻居 的信息来进行预测 判定方法 1
  • 98个创新JAVA计算机毕业设计项目,通俗易懂,被朋友羡慕了

    面对如海的计算机毕业设计题目 你是否感到困惑 不知如何选择一个具有创新性的项目 今天 我们将为大四的同学们分享一些毕业设计项目 希望能对你的毕业设计有所帮助 一 成品列表 以下所有springboot框架项目的源码博主已经打包好上传到百du
  • Visual Studio对代码进行注释

    1 Ctrl K C 可以同时按住三键 也已分开来按Ctrl K Ctrl C 对选中的代码段进行注释 Ctrl K U 可以同时按住三键 也已分开来按Ctrl K Ctrl U 对选中的代码段取消注释 2 Ctrl Shift 切换块注释
  • Nacos 入门应用

    Nacos入门应用 一 概述 Nacos提供了统一配置管理 服务发现与注册 其中服务注册和发现的功能 相当于dubbo里面使用到的zookeeper 或者spring cloud里面应用到的eureka 之前在Spring Cloud Eu
  • lucene 目录结构简单介绍

    今天回顾了一下lucene 搜索引擎的基础技术 有必要总结一下 搜索引擎的相关知识点 lucene 目录结构 如下图所示 lucene 目录结构详细说明 core Lucene核心类库 analyzers common 不同语言和领域通用的
  • KNN算法实例——鸢尾花种类预测

    线性回归的scikit learn实现 scikit learn中提供了一个KNeighborClassifier类来实现k近邻法分类模型 方法 fit X y 训练模型 predict 使用模型来预测 返回待预测样本的标记 score X
  • 使用Java实现斗地主发牌逻辑(简单基础版)

    大家好 我是垃圾佬 一个正在学Java的 无业游民 最近复习到了Map 集合 我觉得斗地主发牌这个案例来练习Map集合还是非常好的 话不多说先上图解 1 斗地主发牌 图解 图解 1 首先定义扑克牌映射表 按编号的顺序从小到大依次是牌面的从大
  • c 回调函数&函数指针

    概述 之前写Android程序的时候 我们常常对一些异步操作 或事件监听 都会通过回调函数 回调处理结果 最近写c c 项目的时候 也需要实现回调函数 却不知道怎么下手 经过自己学习 了解到c c 可以通过函数指针实现回调函数的功能 在此做
  • 2022年9月27日每日一练 选择客栈 数学-简单

    题目 丽江河边有 n 家很有特色的客栈 客栈按照其位置顺序从 1 到 n 编号 每家客栈都按照某一种色调进行装饰 总共 k 种 用整数 0 k 1 表示 且每家客栈都设有一家咖啡店 每家咖啡店均有各自的最低消费 两位游客一起去丽江旅游 他们