C++开发工程师笔试题目

问题
题目描述:
最近经济不景气,小A准备将持仓的股票销售一部分,他共持股有n支股票,受交易平台的限制,他每天最多只能卖出m支股票,已知第i支股票每天回亏损a_j元,即如果第k天抛售这支股票,亏损的数额是k*a_j元。
现在他还没有决定具体卖出多少支股票,所以他会给你若干询问,即如果卖出q支股票,这q支股票最少的亏损数额是多少元。

输入
输入第一行包含两个正整数n和m,表示小A持仓的股票数量和每天最多能卖出的股票数量。(1<=n,m<=50000)
输入第二行包含n个正整数,第i个数a_i表示第i支股票每天的亏损数额。(1<=a_i<=10000)接下来一行有一个正整数Q,表示询问的数量。(1<=Q<=50000)
之后有Q行,每行有一个正整数q。表示假如要卖出q支股票,最少的亏损数额是多少元。(q<=n)

输出
对于每个询问,输出对应的结果

样例输入

5 2
1 2 3 4 5
2
3
5

样例输出

7
22

题目解释
一共有5支股票,每天最多可以抛售2支
q为2,即有两个询问。
针对第一个询问3,需要抛售3只股票,当选择第1,2,3号股票时损失最小。其中第一天抛售2,3号股票,损失为5元;第二天抛售1号股票,损失为21=2元;最后合计损失为7元。
针对第二个询问5,需要抛售第1,2,3,4,5号股票。其中第一天抛售4,5号股票,损失为9元;第二天抛售2,3号股票,损失为2
2+23=10;第三天抛售1号股票,损失为31=3元;最后合计损失22元。

完整代码实现

待写

问题2
题目描述:
有n位乘客坐一列列车。列车一共会依次经过100000个站点,从1到100000编号。我们已知每一位乘客的上车站点和下车站点,但是不知道这些乘客的订票顺序。
当一位乘客订票时,他会在当前还空余的座位中选择一个他喜欢的位置,但是我们不知道乘客的喜好,所有他具体哪个位置我们是不知道的。
现在你需要计算列出最少需要安排多少个座位,可以使得无论乘客的订票情况和顺序是怎么样的,所有乘客都有座位可以坐。
举个例子,有三位乘客:
A:1---->2
B:2---->3
C:1---->3
若订票顺序是A,B,C,那么只需要两个座位就一定能满足。当A订票时,他会选择一个座位,当C订票时,可用座位只剩下一个,他会订这个剩余的座位,当B订票时,可用座位也只有一个,他会订这个座位(即最开始A的那个座位);
若订票顺序是A,B,C,那么有可能会需要三个座位,A订了一个座位,B订了与A不同的座位,此时C来订票是他只能订第三个座位。
所以对于这组例子,答案是3.

输入
第一行包含一个整数n,表示乘客的数量
1<=n<=1000
接下来n行每行包含两个整数ai,bi,表示第i位乘客的上车站点和下车站点
1<=ai

输出
输出对应的答案

样例输入

10
84 302
275 327
364 538
26 364
29 286
545 955
404 415
903 942
450 405

样例输出

6

完整代码实现

待写

你可能感兴趣的:(c++笔试题)