京东2025届秋招 算法开发工程师 第2批笔试
目录
- 1. 第一题
- 2. 第二题
- 3. 第三题
⏰ 时间:2024/08/17
🔄 输入输出:ACM格式
⏳ 时长:2h
本试卷还有选择题部分,但这部分比较简单就不再展示。
1. 第一题
村子里有一些桩子,从左到右高度依次为 1 , 1 + 2 , 1 + 2 + 3 , . . . 1,1+2,1+2+3,... 1,1+2,1+2+3,...,每两颗桩子之间的间隔为 1 1 1。现在下了一场大雪,但是不知道雪下了多厚,现在给你两个数字,这是雪后某相邻两个桩子在雪面上的高度,请你通过这两个数字计算雪的厚度。
输入描述
在一行中输入两个正整数 a , b a, b a,b, 1 ≤ a < b ≤ 5 ⋅ 1 0 5 1\leq a<b\leq5\cdot10^5 1≤a<b≤5⋅105。
输出描述
在一行中输出一个整数代表雪的厚度。我们可以证明,答案一定存在。
题解
只需注意到 a k − a k − 1 = k a_k-a_{k-1}=k ak−ak−1=k,于是可以用 b − a b-a b−a 定位到右边柱子的下标,计算它的高度即可。
#include <bits/stdc++.h>using namespace std;
using i64 = long long;int main() {i64 a ,b;cin >> a >> b;i64 k = b - a;i64 old_h = k * (k + 1) / 2;cout << old_h - b << endl;return 0;
}
2. 第二题
牛牛有一种锯齿状的积木,这种积木比较长,但是每个单位长度的高度是相等的,高度为 1 1 1 或者 2 2 2。
现在牛牛拿出了两块长度分别为 n n n 和 m m m 的积木,她现在想把这两块积木拼接在一起,即使中间有空隙也没有关系。但是拼接后的积木的高度要不超过 3 3 3,请你帮助牛牛计算在满足这个前提下拼接后的积木的长度最短可以是多少。
例如有两块形状如下的积木:
输入描述
第一行给出两个正整数 n , m n,m n,m,代表第一块和第二块积木的长度。
第二行给出 n n n 个数字代表第一块积木每个单位的高度。
第三行给出 m m m 个数字代表第二块积木每个单位的高度 1 ≤ n , m ≤ 1000 1\leq n,m \leq 1000 1≤n,m≤1000。
输出描述
在一行中输出一个正整数代表拼接后积木的最短长度
题解
本题直接模拟即可。
说白了就是给定 a a a 和 b b b 两个数组,初始时先让 a a a 和 b b b 的左端对齐。
- 先让 a a a 在 b b b 上向右滑动,计算两者重叠部分的按位元素和,只要重叠部分中有一个位置出现了 > 3 >3 >3 的情况,说明当前拼接是无效的,继续右移。我们自然是希望 a a a 右移的距离尽可能地小。
- 再让 b b b 在 a a a 上向右滑动,同样是找到正确的拼接位置,并使得 b b b 右移的距离尽可能小。
- 还要考虑一种特殊情况就是无法上下拼接,此时需要将 a a a 和 b b b 直接横向连接,长度为 m + n m+n m+n。
#include <bits/stdc++.h>using namespace std;int min_len(const string& a, const string& b) {int n = a.length(), m = b.length();// a在b上滑动for (int i = 0; i < m; i++) {bool valid = true;for (int j = i; j < i + n && j < m; j++) {if (a[j - i] - '0' + b[j] - '0' > 3) {valid = false;break;}}if (valid)return max(m, i + n);}return m + n;
}int main() {int n, m;cin >> n >> m;string a, b;cin >> a >> b;cout << min(min_len(a, b), min_len(b, a)) << endl;return 0;
}
3. 第三题
牛牛也是要回家过年的呢。
牛牛所在的国家有 n n n 座城市, m m m 条有向道路,第 i i i 条道路由城市 u i u_i ui 通往城市 v i v_i vi,通行费为 w i w_i wi。
作为一头豪气的牛,希望他回家的花费是一个特殊的数字(例如666元)。具体的说,牛牛希望从城市 1 1 1 移动到城市 n n n,并恰好花费 a a a 元。
请你告诉牛牛,他有多少种回家的方案?
输入描述
第一行三个整数 n , m , a ( 1 ≤ n ≤ 100 , 1 ≤ m ≤ 1000 , 1 ≤ a ≤ 1000 ) n,m,a\,(1\leq n\leq 100,1\leq m\leq 1000,1\leq a\leq1000) n,m,a(1≤n≤100,1≤m≤1000,1≤a≤1000),含义如题面所示。
接下来 m m m 行,第 i i i 行三个整数 u i , v i , w i ( 1 ≤ u i , v i ≤ n , 1 ≤ w i ≤ a ) u_i,v_i,w_i\,(1\leq u_i,v_i\leq n,1\leq w_i\leq a) ui,vi,wi(1≤ui,vi≤n,1≤wi≤a),描述了一条道路。
输出描述
如果牛牛回家的方案数大于等于 20220201 20220201 20220201 种,请你在第一行输出 All roads lead to Home!,然后在第二行输出回家的方案数对 20220201 20220201 20220201 取模的结果。
否则只需要输出一行一个整数,表示牛牛回家的方案数。
题解
本题使用动态规划求解。
设 d p [ i ] [ j ] dp[i][j] dp[i][j] 为从城市 1 1 1 到城市 i i i,花费恰好为 j j j 的方案数。由于从 1 1 1 到 1 1 1 花费为 0 0 0,也算是一种方案,因此 d p [ 1 ] [ 0 ] = 1 dp[1][0]=1 dp[1][0]=1,其他地方为 0 0 0。
假设 u → w v u\overset{w}{\to} v u→wv,且在城市 u u u 的时候已经花费了 j j j,那么有如下的转移方程
d p [ v ] [ j + w ] = d p [ u ] [ j ] + d p [ v ] [ j + w ] dp[v][j + w]=dp[u][j]+dp[v][j +w] dp[v][j+w]=dp[u][j]+dp[v][j+w]
注意,在计算 v v v 的时候,我们必须要保证 u u u 已经计算完毕,因此要按照拓扑序进行计算。
#include <bits/stdc++.h>using namespace std;const int MOD = 20220201;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n, m, a;cin >> n >> m >> a;vector<vector<pair<int, int>>> graph(n + 1);vector<int> in(n + 1, 0);for (int i = 0; i < m; i++) {int u, v, w;cin >> u >> v >> w;graph[u].emplace_back(v, w);in[v]++;}vector<vector<int>> dp(n + 1, vector<int>(a + 1, 0));vector<bool> st(n + 1, 0);dp[1][0] = 1;queue<int> q;for (int i = 1; i <= n; i++) {if (!in[i]) q.push(i);}while (!q.empty()) {auto u = q.front();q.pop();for (auto &[v, w]: graph[u]) {if (!--in[v]) q.push(v);for (int j = 0; j + w <= a; j++) {if (dp[v][j + w] + dp[u][j] >= MOD || st[u]) {st[v] = true;}dp[v][j + w] = (dp[v][j + w] + dp[u][j]) % MOD;}}}if (st[n]) cout << "All roads lead to Home!" << endl;cout << dp[n][a] << endl;return 0;
}
相关文章:
京东2025届秋招 算法开发工程师 第2批笔试
目录 1. 第一题2. 第二题3. 第三题 ⏰ 时间:2024/08/17 🔄 输入输出:ACM格式 ⏳ 时长:2h 本试卷还有选择题部分,但这部分比较简单就不再展示。 1. 第一题 村子里有一些桩子,从左到右高度依次为 1 , 1 2…...
模具监视器的技术参数有哪些
模具监视器的技术参数涵盖了多个方面,这些参数对于确保模具监视器的性能、稳定性和检测精度至关重要。以下是一些主要的技术参数: 一、显示器参数 屏幕尺寸:常见的模具监视器显示器尺寸为12.5英寸至13.5英寸,具体尺寸可能因不同…...
使用QGIS配置管线流向地图
一、需求概述 在管网项目中,需要进行地图配置使用QGIS显示管网的流向。 二、目标 配置一副管网地图,可以在地图上显示出每个管段的流向。 三、数据结构 管网数据: id[管线编码]source[起始节点ID]target[终点节点ID]dir[方向]1100101FT2101102FT……………………节点数据…...
白骑士的C#教学附加篇 5.1 C#开发工具
系列目录 上一篇:白骑士的C#教学实战项目篇 4.4 游戏开发 在这一部分,我们将介绍一些额外的内容和工具,以帮助您提高 C# 开发的效率和质量。掌握合适的开发工具和调试技巧,可以让您在编写和维护代码时更加高效和从容。 开发工具对…...
C++中的多线程编程和锁机制
二、多线程、锁 2.1 C语言线程库pthread(POSIX threads) 2.2.1 线程创建 pthread_create #include <pthread.h>pthread_t thread; ThreadData args {1, "Hello from parameterized thread"}; int result pthread_create(&threa…...
【投融界-注册安全分析报告】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...
自动打电话软件给企业带来了什么?
使用机器人外呼系统肯定都是想要给自己企业带来好处和解决问题的,想让自己的企业有所改变,有更好的发展,所以才会选择使用机器人外呼系统。而它也确实没让大家失望,使用了机器人外呼系统之后确实有许多企业发生了很大改变和进步&a…...
聚鼎科技:新手做装饰画生意卖什么比较好
在艺术的广阔天地里,装饰画以其独特的魅力逐渐成为室内装饰不可或缺的元素。对于刚入行的新手而言,选择合适的装饰画产品至关重要,它关系到业务的成功与否。以下是一些关于新手做装饰画生意卖什么比较好的建议。 考虑到市场需求的多样性&…...
从零开始搭建k8s集群详细步骤
声明:本文仅作为个人记录学习k8s过程的笔记。 节点规划: 两台节点为阿里云ECS云服务器,操作系统为centos7.9,master为2v4GB,node为2v2GB,硬盘空间均为40GB。(节点基础配置不低于2V2GB) 主机名节点ip角色部…...
大模型智能体可以用来实现哪些需求?
大模型智能体可以用来实现广泛的需求,以下是一些常见的应用场景: 自然语言处理(NLP)应用 文本生成:自动撰写文章、编写代码、生成新闻摘要。 对话系统:智能客服、虚拟助手、聊天机器人。 语言翻译…...
Vue 3 组合式 API 全面讲解:defineCustomElement
Vue 3 引入的组合式 API(Composition API)为开发者提供了更加灵活和强大的代码组织能力。除了常用的 defineComponent 用于定义普通组件外,Vue 3 还提供了 defineCustomElement 函数,允许开发者定义可在 Web Components 规范下使用…...
SwiftUI 6.0(iOS 18)监听滚动视图视口中子视图可见性的极简方法
概览 在 SwiftUI 的应用开发中,我们有时需要监听滚动视图中子视图当前的显示状态:它们现在是被滚动到可见视口(Viewport)?或仍然是隐藏在“未知的黑暗”中呢? 在 SwiftUI 早期版本中为了得偿所愿,我们需要借助一些“取巧”的手段。不过,从 SwiftUI 6.0(iOS 18)开始情…...
分享五种mfc140.dll丢失如何修复?五种修复错误的详细解决办法
在Windows操作系统中,DLL(动态链接库)文件扮演着至关重要的角色,它们为应用程序提供了共享的函数和资源。其中,mfc140.dll是Microsoft Visual C 2015 Redistributable Package的一部分,对于许多使用Microso…...
MATLAB 手动实现投影密度法分割建筑物立面 (73)
专栏文章往期回顾,包含本文章 MATLAB 手动实现投影密度法分割建筑物立面 (73) 一、算法介绍二、算法实现1.代码2.效果总结一、算法介绍 从原始点云中,自动分割提取建筑物立面点云用于立面绘图,可以减少人为操作流程。这里从0开始,手动实现一种基于投影密度法的建筑物立…...
QT的基础数据类型(上)
本文将介绍几个QT中常用的数据类型 QString 是处理字符串的主要类 使用Unicode编码,每个字符是16位的QChar 初始化 QString的初始化方法有以下几种: //字符串常量初始化QString str1 = "Hello, World! str1";//使用构造函数初始化QString str2("Hello, Wo…...
【系统分析师】-综合知识-系统架构
1、设计模式 1)观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新【消息订阅】。在该模式中,发生改变的对象称为观察目标,被通知的对象称为观察者&…...
华为AR1220配置GRE隧道
1.GRE隧道的配置 GRE隧道的配置过程,包括设置接口IP地址、配置GRE隧道接口和参数、配置静态路由以及测试隧道连通性。GRE隧道作为一种标准协议,支持多协议传输,但不提供加密,并且可能导致CPU资源消耗大和调试复杂等问题。本文采用华为AR1220路由器来示例说明。 配置…...
前端面试题-什么是JavaScript的闭包?有哪些应用场景?
定义: 一个函数能够访问其它函数内部定义的变量 形成的原理: (1)函数创建:在一个函数(外部函数)中定义另一个函数(内部函数)。 (2)内部函数访问:内部函数可以访问和修改外部函数中的局部变量。 (3)函数…...
Xilinx XAPP585相关
XAPP585中相关的状态机 第一个状态机:这里主要是在对时钟线延迟的基础上,通过BITSLIP操作,做时钟的对齐; 第二个状态机:这里对c_delay_in所做的操作,主要是对时钟线的延迟进行控制; delay_con…...
Java实现腾讯云人脸识别集成:如何为司机创建人脸模型
文章目录 一、场景介绍二、实现步骤三、代码解析四、总结 在现代的开发过程中,我们经常需要集成各种云服务来增强应用的功能。今天,我想和大家分享一个在Java中集成腾讯云人脸识别的实际案例——为司机创建人脸模型。这个功能通常用于司机管理系统中&…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
