当前位置: 首页 > news >正文

京东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 1a<b5105

输出描述

在一行中输出一个整数代表雪的厚度。我们可以证明,答案一定存在。

题解

只需注意到 a k − a k − 1 = k a_k-a_{k-1}=k akak1=k,于是可以用 b − a b-a ba 定位到右边柱子的下标,计算它的高度即可。

#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 1n,m1000

输出描述

在一行中输出一个正整数代表拼接后积木的最短长度

题解

本题直接模拟即可。

说白了就是给定 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(1n100,1m1000,1a1000),含义如题面所示。
接下来 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(1ui,vin,1wia),描述了一条道路。

输出描述

如果牛牛回家的方案数大于等于 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 uwv,且在城市 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. 第三题 ⏰ 时间&#xff1a;2024/08/17 &#x1f504; 输入输出&#xff1a;ACM格式 ⏳ 时长&#xff1a;2h 本试卷还有选择题部分&#xff0c;但这部分比较简单就不再展示。 1. 第一题 村子里有一些桩子&#xff0c;从左到右高度依次为 1 , 1 2…...

模具监视器的技术参数有哪些

模具监视器的技术参数涵盖了多个方面&#xff0c;这些参数对于确保模具监视器的性能、稳定性和检测精度至关重要。以下是一些主要的技术参数&#xff1a; 一、显示器参数 屏幕尺寸&#xff1a;常见的模具监视器显示器尺寸为12.5英寸至13.5英寸&#xff0c;具体尺寸可能因不同…...

使用QGIS配置管线流向地图

一、需求概述 在管网项目中,需要进行地图配置使用QGIS显示管网的流向。 二、目标 配置一副管网地图,可以在地图上显示出每个管段的流向。 三、数据结构 管网数据: id[管线编码]source[起始节点ID]target[终点节点ID]dir[方向]1100101FT2101102FT……………………节点数据…...

白骑士的C#教学附加篇 5.1 C#开发工具

系列目录 上一篇&#xff1a;白骑士的C#教学实战项目篇 4.4 游戏开发 在这一部分&#xff0c;我们将介绍一些额外的内容和工具&#xff0c;以帮助您提高 C# 开发的效率和质量。掌握合适的开发工具和调试技巧&#xff0c;可以让您在编写和维护代码时更加高效和从容。 开发工具对…...

C++中的多线程编程和锁机制

二、多线程、锁 2.1 C语言线程库pthread&#xff08;POSIX threads&#xff09; 2.2.1 线程创建 pthread_create #include <pthread.h>pthread_t thread; ThreadData args {1, "Hello from parameterized thread"}; int result pthread_create(&threa…...

【投融界-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…...

自动打电话软件给企业带来了什么?

使用机器人外呼系统肯定都是想要给自己企业带来好处和解决问题的&#xff0c;想让自己的企业有所改变&#xff0c;有更好的发展&#xff0c;所以才会选择使用机器人外呼系统。而它也确实没让大家失望&#xff0c;使用了机器人外呼系统之后确实有许多企业发生了很大改变和进步&a…...

聚鼎科技:新手做装饰画生意卖什么比较好

在艺术的广阔天地里&#xff0c;装饰画以其独特的魅力逐渐成为室内装饰不可或缺的元素。对于刚入行的新手而言&#xff0c;选择合适的装饰画产品至关重要&#xff0c;它关系到业务的成功与否。以下是一些关于新手做装饰画生意卖什么比较好的建议。 考虑到市场需求的多样性&…...

从零开始搭建k8s集群详细步骤

声明&#xff1a;本文仅作为个人记录学习k8s过程的笔记。 节点规划&#xff1a; 两台节点为阿里云ECS云服务器&#xff0c;操作系统为centos7.9&#xff0c;master为2v4GB,node为2v2GB,硬盘空间均为40GB。&#xff08;节点基础配置不低于2V2GB&#xff09; 主机名节点ip角色部…...

大模型智能体可以用来实现哪些需求?

大模型智能体可以用来实现广泛的需求&#xff0c;以下是一些常见的应用场景&#xff1a; 自然语言处理&#xff08;NLP&#xff09;应用 文本生成&#xff1a;自动撰写文章、编写代码、生成新闻摘要。 对话系统&#xff1a;智能客服、虚拟助手、聊天机器人。 语言翻译&#xf…...

Vue 3 组合式 API 全面讲解:defineCustomElement

Vue 3 引入的组合式 API&#xff08;Composition API&#xff09;为开发者提供了更加灵活和强大的代码组织能力。除了常用的 defineComponent 用于定义普通组件外&#xff0c;Vue 3 还提供了 defineCustomElement 函数&#xff0c;允许开发者定义可在 Web Components 规范下使用…...

SwiftUI 6.0(iOS 18)监听滚动视图视口中子视图可见性的极简方法

概览 在 SwiftUI 的应用开发中,我们有时需要监听滚动视图中子视图当前的显示状态:它们现在是被滚动到可见视口(Viewport)?或仍然是隐藏在“未知的黑暗”中呢? 在 SwiftUI 早期版本中为了得偿所愿,我们需要借助一些“取巧”的手段。不过,从 SwiftUI 6.0(iOS 18)开始情…...

分享五种mfc140.dll丢失如何修复?五种修复错误的详细解决办法

在Windows操作系统中&#xff0c;DLL&#xff08;动态链接库&#xff09;文件扮演着至关重要的角色&#xff0c;它们为应用程序提供了共享的函数和资源。其中&#xff0c;mfc140.dll是Microsoft Visual C 2015 Redistributable Package的一部分&#xff0c;对于许多使用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&#xff09;观察者模式定义了对象间的一种一对多依赖关系&#xff0c;使得每当一个对象改变状态&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新【消息订阅】。在该模式中&#xff0c;发生改变的对象称为观察目标&#xff0c;被通知的对象称为观察者&…...

华为AR1220配置GRE隧道

1.GRE隧道的配置 GRE隧道的配置过程,包括设置接口IP地址、配置GRE隧道接口和参数、配置静态路由以及测试隧道连通性。GRE隧道作为一种标准协议,支持多协议传输,但不提供加密,并且可能导致CPU资源消耗大和调试复杂等问题。本文采用华为AR1220路由器来示例说明。 配置…...

前端面试题-什么是JavaScript的闭包?有哪些应用场景?

定义: 一个函数能够访问其它函数内部定义的变量 形成的原理: (1)函数创建&#xff1a;在一个函数&#xff08;外部函数&#xff09;中定义另一个函数&#xff08;内部函数&#xff09;。 (2)内部函数访问&#xff1a;内部函数可以访问和修改外部函数中的局部变量。 (3)函数…...

Xilinx XAPP585相关

XAPP585中相关的状态机 第一个状态机&#xff1a;这里主要是在对时钟线延迟的基础上&#xff0c;通过BITSLIP操作&#xff0c;做时钟的对齐&#xff1b; 第二个状态机&#xff1a;这里对c_delay_in所做的操作&#xff0c;主要是对时钟线的延迟进行控制&#xff1b; delay_con…...

Java实现腾讯云人脸识别集成:如何为司机创建人脸模型

文章目录 一、场景介绍二、实现步骤三、代码解析四、总结 在现代的开发过程中&#xff0c;我们经常需要集成各种云服务来增强应用的功能。今天&#xff0c;我想和大家分享一个在Java中集成腾讯云人脸识别的实际案例——为司机创建人脸模型。这个功能通常用于司机管理系统中&…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...