早餐组合双指针

小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过 x 元。请返回小扣共有多少种购买方案。

注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1

输入:staple = [10,20,5], drinks = [5,5,2], x = 15

输出:6

解释:小扣有 6 种购买方案,所选主食与所选饮料在数组中对应的下标分别是: 第 1 种方案:staple[0] + drinks[0] = 10 + 5 = 15; 第 2 种方案:staple[0] + drinks[1] = 10 + 5 = 15; 第 3 种方案:staple[0] + drinks[2] = 10 + 2 = 12; 第 4 种方案:staple[2] + drinks[0] = 5 + 5 = 10; 第 5 种方案:staple[2] + drinks[1] = 5 + 5 = 10; 第 6 种方案:staple[2] + drinks[2] = 5 + 2 = 7。

class Solution {
    public int breakfastNumber(int[] staple, int[] drinks, int x) {
        Arrays.sort(staple);
        Arrays.sort(drinks);
        int cnt=0;
        int m=staple.length,n=drinks.length;
        int i=0,j=n-1;
        while(i<m&&j>=0){
            if(staple[i]+drinks[j]<=x){
                cnt=(cnt+j+1)%1000000007;
                i++;
            }else{
                j--;
            }
        }
        return cnt%1000000007;
    }
}

# T588725 化食欲为动力 ## 题目背景 ### 在本次比赛中,每道题目均可以多次提交答案,系统以最后一次提交为准计算分数。在比赛结束前,你无法获知你的分数。 ### 为避免自动识别语言产生失误,建议每道题目都自行选择代码的提交语言,避免产生意外失分。 ### Python 选手建议使用 PyPy3 提交本场比赛的编程题。需要注意,PyPy3 无 NumPy 库支持,请根据个人所需选择 Python3 或 PyPy3。 ## 题目描述 小蓝为了参加蓝桥杯,今天特意起了个大早。但是他还没有吃饭,于是他走进学校的超市中,超市的货架上摆了 $n$ 个面包、$m$ 包火腿肠和 $k$ 盒牛奶。对于小蓝而言,每件商品对他来说都有一个非 0 的食欲。面包的食欲用数组 $a$ 表示,火腿肠的食欲用 $b$ 表示,牛奶的食欲用 $c$ 表示。 当小蓝买了第 $i$ 个面包、第 $j$ 包火腿肠和第 $t$ 盒牛奶并吃完这顿早餐后,他会得到 $(a_i \times b_j) \bmod c_t$ 的动力。 现在,小蓝想知道这顿早餐最多能得到多少动力。你能帮帮他吗? ## 输入格式 第一行为三个整数 $n$,$m$,$k$,含义如上所述; 第二行为 $n$ 个整数,第 $i$ 个整数表示第 $i$ 个面包的食欲 $a_i$。 第三行为 $m$ 个整数,第 $i$ 个整数表示第 $i$ 包火腿肠的食欲 $b_i$。 第四行为 $k$ 个整数,第 $i$ 个整数表示第 $i$ 盒牛奶的食欲 $c_i$。 ## 输出格式 一行一个整数,表示小蓝最多能得到的动力。 ## 输入输出样例 #1 ### 输入 #1 ``` 1 1 1 2 3 5 ``` ### 输出 #1 ``` 1 ``` ## 输入输出样例 #2 ### 输入 #2 ``` 2 3 6 3 8 2 5 9 1 1 4 5 1 4 ``` ### 输出 #2 ``` 3 ``` ## 说明/提示 ### 数据规模与约定 - 对于 $10\%$ 的数据,保证 $n=m=k=1$。 - 对于 $30\%$ 的数据,保证 $1 \leq n, m, k \leq 50$,$1 \leq a_i, b_i, c_i \leq 100$。 - 对 $100\%$ 的数据,保证 $1 \leq n, m, k \leq 200$,$1 \leq a_i, b_i, c_i \leq 10^9$。
04-01
使用C语言、vscode软件、g++编译器、utf-8编码环境,做一个家庭菜谱管理系统; 这个系统的功能有:1.添加菜谱,2.删除菜谱,3.修改菜谱,4.查找菜谱,5.随机选择; 菜谱信息:菜名,id,分类,食材,步骤,时间,器具,喜好者; 分类:早午晚餐、下午茶、冷热、口味、菜系、状态; 下午茶:甜品、零食、饮品 冷热:二者选其一 口味字段:酸、甜、苦、辣、咸(可多选) 状态:汤,干,湿,脆,软,硬(可多选) 菜系:中餐、西餐 中餐:鲁菜、川菜、粤菜、苏菜、闽菜、浙菜、湘菜、徽菜、其它 功能详细解释如下: 1.添加菜谱,菜谱信息:菜名,菜谱id(按照加入的名字序号系统自动生成),分类,食材,步骤,时间,器具,喜好者; 2.删除菜谱可以根据菜名、菜谱id查找到对应的菜谱,显示菜谱信息,确定是否删除,是则删除成功,否则取消操作; 3.修改菜谱可以根据菜名、菜谱id查找到对应菜谱,显示菜谱信息后,选择要修改的对应信息修改该信息,修改完成后显示修改后的菜谱信息; 4.查找菜谱可以根据菜名、菜谱id、分类、时间、器具、喜好者查询相应一个或多个菜谱,显示相关信息,也可以显示全部的菜谱信息; 5.随机选择可以选择生成一餐或几天的餐食,一餐可选择是早餐,午餐,晚餐,下午茶四者中的哪一个,然后再按照冷热、口味、状态、菜系、喜好者来填写信息,也可选择每个的数量,如果相应信息未填写,则默认这项选择随机,比如冷热中冷菜两个,口味中辣,则从菜谱库中随机选择出两个是冷菜且口味中辣的菜谱,显示这两个菜谱的信息的;若是生成几天的,则要填写每天的早午晚下午茶中,每顿需要的菜的数量,再按照生成一餐的菜谱的信息填写,生成出几天的每顿餐的餐食,并给出食材采购的清单; 给出这个系统的完整c文件和h文件,给出每个文件中完整的代码和注释
最新发布
07-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值