携程旅行2021校招 研发A卷凉经

第一题AC 第二题看了输入不想写了打了个-1退出走人 1个小时2道题各50分

1. 搬砖铺路

时间限制: 1000MS
内存限制: 65536KB

题目描述:

天会SOHO最近正在进行道路建设,现在有充足的长度为a和长度为b的两种规格的瓷砖。
现在从这些瓷砖中任取k块来铺路,请按递增的顺序输出所有可能的铺成道路的长度。

输入描述

输入为3个数,每行1个数,第一个数表示a,第二个数表示b,第三个数表示k。
a和b均为正整数,0 <= k <= 100000

输出描述

输出的结果为一个数组,数组中的值从小到大排列,如:[3,4,5,6]。如果数组为空则输出为[],如果有相同的结果去除重复的。

样例输入

1
2
3

样例输出

[3,4,5,6]

提示

可以使用 3 次 a,得到结果 3;使用 2 次 a 和 1 次 b,得到结果 4 。以此类推,得到最终结果。

你就考这??????

我写了一通还想着要不要优化一下排序去重啥的结果一跑直接0分 奇怪 也不是TLE
然后一看 输出还真的就要是“[3,4,5,6]”
不是这种意义上的
for (const auto& i : vec)
{
    cout << i << endl;
}
而是这种意义上的
cout << "[";
cout << "3,4,5,6";
cout << "]";

哦.jpg
vector < int > divingBoard(int a, int b, int k) {
	set<int> ans;
    for (int j = 0; j <= k; j++)
    {
        ans.insert(a * j + b * (k - j));
    }
    vector<int> ans2(begin(ans), end(ans));
    return ans2;
}
随便写了点 一开始还想着先排序再去重 后面一想拉倒吧就set完事了
图一乐啊

2. 计算工作流中最大执行时间

时间限制: 1000MS

内存限制: 65536KB

题目描述:

在业务系统中,通常会执行多个任务,各个任务之间存在一定的依赖关系,我们称之为任务节点。每一个节点会设计一个最大的超时时间,如果发生超时现象,那么中断该路径的后续操作。

现在需要计算一个流程的最大执行时间。


项目执行从HEAD开始。如果节点执行结束后,没有后续需要执行的任务节点,那么以END作为结束。

*提示:如上图所示,执行TaskC最长需要50msTaskD最长需要80ms,如果TaskD执行发生了超时,那么TaskC + TaskD最长需要消耗130ms的时间。此题中,不需要考虑超时的场景。每个节点的最大执行时间等于超时时间,仅需要计算各个路径中的超时时间之和即可。

*注意:需要检查输入的合法性,如果输入不合理,节点定义错误等异常场景,输出结果为-1

*注意:无需进行闭环间测

输入描述

输入和题干中的内容一致

系统从HEAD开始,每一个节点用“|”分割,每一个节点的信息用“`”分割,如果存在多个子节点例如ABC,用“,”分割。

例如:

HEAD`0`A,B,C|A`20`END表示,这是一个开始节点,他执行时间需要0ms,接下来可以同时执行A,B, C三个子任务节点。

A任务节点,最大执行时间需要20ms,没有需要执行的后续节点

输出描述

如图所示,ABC相互之间没有依赖,可以并行执行,但是DE需要等待C执行完成才可以开始执行。最大执行时间应该为:

timeout(C) + timeout(E) = 200ms

timeout(C) + timeout(D) + timeout(F) = 160ms

timeout(B) = 100ms

timeout(A) = 20ms

所以最大值为 200ms

样例输入

HEAD`0`A,B,C|A`20`END|B`100`END|C`50`D,E|D`80`F|E`150`END|F`30`END

样例输出

200

提示

可以参考代码模板中的代码,来构建数据结构。必要时对代码进行一些调整,以提高系统健壮性

第一想法 先-1蹭分 能过20% 不错!
然后仔细一看 这不就是个多叉树最大路径和么 搞那么多花里胡哨的 写那么多谁懂啊.jpg
那赶紧写啊
再一看输入 算了 这题不做了 这尼玛还要自己判断输入合不合法 你给我个xml或者json都行啊!
直接点调试保存交卷一气呵成
携程再见了.jpg

#携程##笔试题目#
全部评论
唉  完事一搜就是 凉经   俺真是太菜了
点赞
送花
回复
分享
发布于 2020-08-15 20:02
我第一题还从递归写起,后来才发现只要遍历就行啊😂 第二题以为好心把树给我建好了呢
点赞
送花
回复
分享
发布于 2020-08-15 20:06
滴滴
校招火热招聘中
官网直投
第一题我优化了代码,😏没想到是特么这一出
点赞
送花
回复
分享
发布于 2020-08-15 20:06
第一题搞完以为ac,结果后来看一下wa和ac返回的句子差不多长度。。。哈哈哈
点赞
送花
回复
分享
发布于 2020-08-15 20:06
第一道题就不说了,第二道题就是遍历书,我是Java,他的输入输出都写好了,可惜第二题忘了递归怎么写了
点赞
送花
回复
分享
发布于 2020-08-15 20:08
第一题有什么问题吗,一直超时 vector < int > divingBoard(int a, int b, int k) { vector<int> ans; int temp; int sum1; if(a>b){ temp=a-b; sum1 = b*k; }else{ temp=b-a; sum1 = a*k; } ans.push_back(sum1); for(int i=0;i<k;i++){ sum1 +=temp; ans.push_back(sum1); } return ans; }
点赞
送花
回复
分享
发布于 2020-08-15 20:09

相关推荐

1 2 评论
分享
牛客网
牛客企业服务