华为软件类笔试-嵌入式软件开发 9-27
《嵌入式软件开发笔试与面试手册》: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
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。