《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj  《软件开发笔试汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm    3、货物运输  有m件货物和n辆卡车,每辆卡车只能运送一件货物,卡车的载重量需要大于等于货物重量才能运输;  另有x个载重为y的拖斗,每辆卡车最多可以拖挂一个拖斗以提升载重量,共同运输一件更重的货物;  请你返回最多可以运输多少件货物。  解答要求  时间限制:C/C++ 1000ms,其他语言:2000ms  内存限制: C/C++ 256MB,其他语言:512MB  输入  三行数据︰  1. m n x y  2. weight0 weight1 weight2 ...  3. load0 load1 load2 ...  第1行包含四个数字,分别为︰  m:货物数量  n:卡车数量  x:拖斗数量  y:拖斗载重  第2行为货物的重量列表,以空格分隔;  第3行为卡车的载重列表,以空格分隔;  范围:  1<=货物/卡车<= 50000  0<=拖斗数量<= 50000  0<=货物重量/卡车载重量/拖斗载重量<= 1000000000  输出  一个整数,最多可以运输货物的数量。  样例1  输入:  5 5 1 5  9 5 9 8 5  1 6 2 6 4  输出:  3  解释:  2号卡车运输1号货物,6>=5  4号卡车运输5号货物,6>=5  5号卡车挂拖斗,运输3号货物,4+5>=8  样例2  输入:  4 4 2 3  9 6 7 8  5 2 3 4  输出:  2  解释:1号卡车挂拖斗,运输4号货物,5+3>=8  4号卡车挂拖斗,运输3号货物,4+3>=7  #include <iostream>#include <vector>#include <algorithm>using namespace std;int main() {    int m, n, x, y;    cin >> m >> n >> x >> y;    vector<int> weights(m);    for (int i = 0; i < m; ++i) {        cin >> weights[i];    }    vector<int> loads(n);    for (int i = 0; i < n; ++i) {        cin >> loads[i];    }    // 按升序对重量和载重进行排序    sort(weights.begin(), weights.end());    sort(loads.begin(), loads.end());    int count = 0;    vector<bool> used(m, false);    // 首先,尝试不使用拖斗来运输货物    for (int i = 0; i < n; ++i) {        for (int j = 0; j < m; ++j) {            if (!used[j] && loads[i] >= weights[j]) {                count++;                used[j] = true;                break;            }        }    }    // 然后,再尝试使用拖斗    for (int i = 0; i < n && x > 0; ++i) {        for (int j = 0; j < m; ++j) {            if (!used[j] && loads[i] + y >= weights[j]) {                count++;                used[j] = true;                x--;                break;            }        }    }    cout << count << endl;    return 0;}    1、双十一促销活动  某商城进行“双十一”促销活动,活动采用等价格减免的方式,某位客人—次购买了N件商品,需要帮忙计算本次购买能获得的总优惠。给定商品价格数组p,其中p[i]表示第i件商品的价格,第i件商品能获得的优惠为第i件商品之前的第j件商品的价格,其中p[j]<= p[i],并且j<i,且p[j]是离p[i]最近的一个小于等于p[i]的商品。求本次购买能获得的总优惠。  例如:给定价格数组p=[9,4,3,5],p[3]=5能获得的优惠为p[2]=3,p[2]是满足条件离p[3]最近的一个商品,其中p[1]=4也小于p[3],但不是离p[3]最近的商品。  解答要求  时间限制:C/C++1000ms,其他语言:2000ms内存限制:C/C++ 256MB,其他语言:512MB  输入  第一行是商品的个数N,1<=N<=100000 ;  第二行是用空格分隔的N个整数,数组元素的值表示商品的价格,0<p[i]≤100000  例如  5  9 4 5 2 4  输出  输出为一个整数,表示本次购买获得的总优惠  例如︰  6  样例1  输入:  5  9 4 5 2 4  输出:  6  解释∶商品0的价格为p[0]=9,第一件商品之前无其他商品,该商品获得的优惠为0  商品1的价格为p[1]=4 ,p[1]之前不存在满足条件的商品,该商品获得的优惠为0  商品2的价格为p[2]=5 , p[2]之前满足条件的最近一个商品为p[1]=4,该商品获得的优惠为4  商品3的价格为p[3]=2,p[3]之前没有满足条件的商品,该商品获得的优惠为0  商品4的价格为p[4]=4,p[4]之前满足条件的最近的一个商品为p[3]=2,该商品获得的优惠为2  由此可以计算出本次购买可以获得的总优惠为:4+2= 6     样例2  输入:  4  1 2 3 5  输出:  6  解释∶商品0的价格为p[0]=1,第一件商品之前无其他0
点赞 1
评论 0
全部评论

相关推荐

小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务