今天做了下烽火通信C/C++、Java方向的编程题,感觉还是挺简单的,虽然数据范围挺吓人的,但是作为校招题目,此套题还是很有质量的.

题目是最新的,因此没有链接.

第一题:

题目描述:

小明最近在研究股市,他拿了某只股票连续nn天的股市变化数据,天数编号11到nn。对于第ii天,该股票的涨跌程度用一个整数a[i]a[i]来表示。小明觉得对于与某一段日期区间,如果这段区间内该股票总涨幅不小于kk,那么这段区间就被认为是牛市区间。小明想知道这nn天内,有多少个牛市区间。

输入:

第一行一个整数n,kn,k,1≤n≤5000,1≤k≤1000001≤n≤5000,1≤k≤100000;
第二行nn个整数,第ii个整数a[i]a[i]表示第i天的涨跌程度,−2000≤a[i]≤2000-2000≤a[i]≤2000。

输出:

输出一个整数,表示一共有多少个牛市区间。

解析:

预处理出sum[i]sum[i]表示1到i的涨幅和,然后枚举两个区间端点,计算这个区间的和只需sum[r]−sum[l−1]sum[r] -sum[l - 1],时间复杂度刚刚好.

代码:

#include <bits/stdc++.h>using namespace std;int main()
{int n ,k;while (cin >> n >> k) {vector<int> sum(n + 1, 0);for (int i = 1; i <= n; i++) {int x;cin >> x;sum[i] = sum[i - 1] + x;}int ans = 0;for (int l = 1; l <= n; l++) {for (int r = l; r <= n; r++) {if (sum[r] - sum[l - 1] >= k)++ans;}}cout << ans << endl;}return 0;
}

第二题:

题目描述:

为解决城中村改造问题并解决市民的住房困难,政府决定在城郊区域建造一批安居房。工程进行的比较顺利,已经有n套方形的房屋建好了。所有的房子都在街道的一侧,中心位于x轴上,墙壁与坐标轴平行。任何两个房子之间没有重叠,但可以公用邻接的墙壁以节省开支。

由于负责建设这批安居房的公司出现了问题,小B所在的公司负责接手后续房子的建设工作。客户希望房子能够和其他房子一样位于x轴上,并且也是方形的,边长为t,墙壁与坐标轴平行,且至少与一个已经建好的房子毗邻。由于还不熟悉情况,她希望你能帮她找出还有多少位置可以开展新房建设工作。

输入:

输入中有多组测试数据。每组测试数据的第一行为空格分隔的两个整数nn和t(1=<n,t<=1000)t(1=,随后的n行中每行包含两个整数xix_i和 aia_i,xix_i为第i个房子的中心坐标, aia_i为其边长(−1000=<xi<=1000,1=<ai<=1000)(-1000=。

输出:

对每组测试数据,在单独的行中输出新房可能选址的位置数。

解析:

类似于两圆相交的判断,动手画个图就知道了。

代码:

#include <bits/stdc++.h>using namespace std;typedef struct tagNode Node;struct tagNode{int a, x;tagNode() {}tagNode(int a, int x) : a(a), x(x) {}
};bool cmp(const Node &A, const Node &B)
{return A.a < B.a;
}int main()
{int n ,t;while (cin >> n >> t) {vector<Node> rooms;for (int i = 0; i < n; i++) {int a, x;cin >> a >> x;rooms.emplace_back(a, x);}int ans = 2;sort(rooms.begin(), rooms.end(), cmp);for (vector<Node>::size_type i = 1; i < rooms.size(); i++) {if (rooms[i].x * 1.0 / 2 + t + rooms[i - 1].x * 1.0 / 2 < rooms[i].a - rooms[i - 1].a)ans += 2;else if (rooms[i].x * 1.0 / 2 + t + rooms[i - 1].x * 1.0 / 2 == rooms[i].a - rooms[i - 1].a)++ans;}cout << ans << endl;}return 0;
}

第三题:

题目描述:

小B发现物流领域大有商机,于是购买了一辆货车开展运输业务。最近,她接到一个货运订单,帮客户运输若干件货物。

货物位于货站的集装箱中,一共有mm个集装箱。其中第ii个集装箱中有aia_i件货物包装箱,每个包装箱中有bib_i件货物,已知所有的货物包装箱大小都是相同的。

限于货车的容量,她的车中最多可以装入nn件该货物的包装箱。限于时间和精力,她无法对这些货物进行重新包装。她希望能够帮客户运送最多的货物,这样她的收益也是最大的。

你能帮助小B选择合适的货物包装箱吗,使得小B运输的货物数最多?

输入:

测试数据有多组,每组测试数据的第一行为两个整数nn和m(1=<n<=2∗108,1=<m<=20)m(1=,。随后的mm行中每行有2个整数aia_i和bi(1=<ai<=108,1=<bi<=10)b_i(1=

输出:

对每组测试数据,在单独的行中输出小B所能运输的最多货物数。

解析:

贪心就好。

代码:

#include <bits/stdc++.h>using namespace std;typedef struct tagNode Node;typedef long long LL;struct tagNode{int a, b;tagNode() {}tagNode(int a, int b) : a(a), b(b) {}
};bool cmp(const Node &A, const Node &B)
{return A.b > B.b;
}int main()
{int n ,m;while (cin >> n >> m) {vector<Node> boxes;for (int i = 0; i < m; i++) {int a, x;cin >> a >> x;boxes.emplace_back(a, x);}sort(boxes.begin(), boxes.end(), cmp);LL ans = 0;for (int i = 0; i < boxes.size() && n; i++) {if (boxes[i].a <= n)ans += boxes[i].a * boxes[i].b;elseans += boxes[i].b * n;n -= min(n, boxes[i].a);}cout << ans << endl;}return 0;
}

烽火通信2018校招软件工程师编程题 - 题解相关推荐

  1. 【企业编程题JAVA】烽火通信2018校招软件工程师

    package FiberHomeSpring;import java.util.Scanner; /* 第一题* 题目描述* 小明最近在研究股市,他拿了某只股票连续n天的股市变化数据,天数编号1到n ...

  2. 去哪儿网2018春招软件开发工程师、前段开发工程师编程题 - 题解

    不难,都是常规的操作,故题解写得简单点. 软件开发工程师编程题 第一题:在字典中找自己的逆序 题目 有一个单词列表,一个初始单词,初始单词需要通过单词列表逐步变换得到自己的逆序,求变换所需的最短变换路 ...

  3. 深信服2018校园招聘C++工程师编程题 - 题解

    深信服2017的校园招聘的题目和这次的几乎一样,不知道贵公司是什么样的想法.做过2017的题目的同学应该会比较占优势.题目不难,比较考验编程的技巧与准确度. 第一题:堆排序 题目: 函数heap_so ...

  4. 链家java_链家2018春招Java工程师编程题题解

    Light 题目描述 在小红家里面,有n组开关,触摸每个开关,可以使得一组灯泡点亮.现在问你,使用这n组开关,最多能够使得多少个灯泡点亮呢? 输入 第一行一个n,表示有n组开关.接下来n行,每行第一个 ...

  5. 京东2018春招java_京东2019春招Java工程师编程题题解

    生成回文串 题目描述 对于一个字符串,从前开始读和从后开始读是一样的,我们就称这个字符串是回文串. 例如"ABCBA","AA","A"是回 ...

  6. 拼多多2018校招内推编程题汇总 详解

    编程 一.最大乘积 描述: 给定一个无序数组,包含正数.负数和 000,要求从中找出 333 个数的乘积,使得乘积最大,要求时间复杂度:O(n)O(n)O(n),空间复杂度:$O(1) $ 输入描述: ...

  7. 美团点评2020校招算法工程师编程题--工作安排--动态规划

    题目描述: 小美是团队的负责人,需要为团队制定工作的计划,以帮助团队产出最大的价值. 每周团队都会有两项候选的任务,其中一项为简单任务,一项为复杂任务,两项任务都能在一周内完成.第i周,团队完成简单任 ...

  8. 京东校招java笔试题_京东2018校招技术笔试编程题汇总

    1.回文 分析 暴力枚举一下check回文,可以确定出最后答案的一半,就可以得到答案了. 参考代码 #include using namespace std; bool isPalindrome(st ...

  9. 网易2016研发工程师编程题 - 题解

    题目链接: 第一部分,点这儿: 第二部分,点这儿. 第一题:小易的升级之路 题目: 小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依 ...

  10. 烽火通信2017 校招 软件工程师 CT扫描

    CT扫描题 (js版本) var lineAdd=0;//输入行计数var inputArr=['2','6',"99 99 99 99 99 99","99 99 99 ...

最新文章

  1. POJ 1222 EXTENDED LIGHTS OUT(高斯消元)
  2. .net core ef mysql 的使用
  3. idea+maven下jrebel的安装破解
  4. 6显示wan口未插线_WiFi 6到底6不6——华硕 AX56U热血版 路由器评测
  5. 朋友圈广告助手_腾讯社交广告代理附近推跟朋友圈广告对比优势
  6. pdftk的使用介绍
  7. asp.net 多条件查询
  8. 移动应用开发——实验四
  9. linux接收数据并保存到环形缓冲区,自定义print函数缓存打印数据到环形缓冲区...
  10. 仿真文件的写法(以四位全加器为例)
  11. 据说是学习python最全的资料
  12. _beginthreadex,CreateThread和_beginthread
  13. Odoo 序列和工作流
  14. 广告联盟中CPC CPA CPM CPS CPV分别是什么意思
  15. 行列式与矩阵的初等变换总结
  16. Win10 屏幕保护突然不出现怎么办
  17. macOS 升级12.6后 Electron 应用闪退
  18. 一键封装app--webapp、HybridApp
  19. linux下 解压iso 命令行
  20. 网课查题极速响应系统-公众号查题

热门文章

  1. 马悦凌:从初级护士到“民间奇医”[7]
  2. 百度网盘客户端刷不出内容,网页版打不开,怎么办?
  3. 监控网页内容,发现需要的内容后弹框和声音提醒
  4. 渗透测试报告模板_网站安全测试报告模板该如何写
  5. 世界上有没有正五面体?
  6. android在体检报告叫什么,体检报告检测分析app
  7. 表白网页制作_表白网页_创意表白_表白神器
  8. web前端开发面试题(七)
  9. 教你快速打粤语正字 讯飞输入法语音输入1分钟400字
  10. Linux内核学习(一)编译内核并运行一个最小系统