Nvidia Intern 笔试回忆
Nvidia intern compute arch 的笔试回忆,感觉强度拉满,两个半小时6道编程题,难度堪比ACM,需要自己写好输入输出(ACM好歹有个签到题 = =),图论的题比较多,跟大厂面试题不是同一level....
前情提示🔔:
对于不确定行数字符串输入组的c++ 11输入模版为:
int main()
{
string s;
while(getline(cin,s))
{
cout<<s<<endl;
}
}
1.graph
题目大意:给你一个无向图,图中必有一环, 返回每个顶点到环的距离(在环里的点到环的距离是0)
数据格式:
节点个数 边个数
所有边的一个顶点
所有边的另一个顶点
样例输入:
7 7
0 1 2 1 3 4 5
1 2 0 3 4 5 6
样例输出:
0 0 0 1 2 3 4
解题思路(来自chatgpt):
要解决这个问题,我们可以使用图论中的 BFS(广度优先搜索)算法。具体步骤如下:
- 检测环:首先,我们需要找到图中的一个环。
- 标记环上的顶点:将环上的顶点的距离标记为 0。
- 计算每个顶点到环的距离:从环上的顶点开始使用 BFS 来计算其他顶点到环的距离。
#include <iostream>
#include <vector>
#include <queue>
#include <unordered_set>using namespace std;// DFS to find a cycle in the graph
bool findCycle(int u, int parent, vector<vector<int>>& graph, vector<int>& visited, vector<int>& parentTrack, vector<int>& cycle) {visited[u] = 1;for (int v : graph[u]) {if (v == parent) continue;if (visited[v] == 0) {parentTrack[v] = u;if (findCycle(v, u, graph, visited, parentTrack, cycle)) return true;} else if (visited[v] == 1) {// Found a cyclecycle.push_back(v);for (int x = u; x != v; x = parentTrack[x]) {cycle.push_back(x);}cycle.push_back(v);return true;}}visited[u] = 2;return false;
}vector<int> distancesToCycle(int n, vector<vector<int>>& edges) {vector<vector<int>> graph(n);for (const auto& edge : edges) {graph[edge[0]].push_back(edge[1]);graph[edge[1]].push_back(edge[0]);}vector<int> visited(n, 0), parentTrack(n, -1), cycle;for (int i = 0; i < n; ++i) {if (visited[i] == 0 && findCycle(i, -1, graph, visited, parentTrack, cycle)) {break;}}unordered_set<int> cycleNodes(cycle.begin(), cycle.end());vector<int> dist(n, -1);queue<int> q;// Mark all cycle nodes with distance 0for (int node : cycle) {dist[node] = 0;q.push(node);}// BFS to find shortest distance to cycle for all nodeswhile (!q.empty()) {int u = q.front();q.pop();for (int v : graph[u]) {if (dist[v] == -1) { // Not visiteddist[v] = dist[u] + 1;q.push(v);}}}return dist;
}int main() {int n, m;cin >> n >> m;vector<vector<int>> edges(m, vector<int>(2));for (int i = 0; i < m; ++i) {cin >> edges[i][0];}for (int i = 0; i < m; ++i) {cin >> edges[i][1];}vector<int> result = distancesToCycle(n, edges);for (int i = 0; i < n; ++i) {cout << result[i] << " ";}cout << endl;return 0;
}
2.graph
给你一个无向图,图中必有一环,每个顶点可以视为一个管道,顶点的值是管道的高度,两个顶点联通表示两个管道互通,可以通水。返回在每个顶点高度水位下,通水的管道(包括自身)。
数据格式:
顶点个数 边个数
顶点值
每条边的两个顶点
样例输入:
6 6
2 3 5 1 6 4
0 1
1 2
2 0
0 3
1 4
2 5
样例输出:
[0,3]
[0,1,3]
[0,1,2,3,5]
[3]
[0,1,2,3,4,5]
[0,1,2,3,5]
解题思路(来自chatgpt):
要解决这个问题,我们需要执行以下步骤:
- 构建图:用邻接表表示无向图。
- 查找环:使用 DFS 找到图中的一个环。
- 通水检测:对于每个顶点的高度,使用 BFS 从环的节点开始,找到所有在该高度下连通的节点。
相关文章:
Nvidia Intern 笔试回忆
Nvidia intern compute arch 的笔试回忆,感觉强度拉满,两个半小时6道编程题,难度堪比ACM,需要自己写好输入输出(ACM好歹有个签到题 ),图论的题比较多,跟大厂面试题不是同一level...…...
鸿蒙OS基于UniApp的WebRTC视频会议系统实践:从0到1的HarmonyOS适配之路#三方框架 #Uniapp
基于UniApp的WebRTC视频会议系统实践:从0到1的HarmonyOS适配之路 引言 在移动互联网时代,实时音视频通讯已成为各类应用的标配功能。本文将结合我在某大型企业协同办公项目中的实战经验,详细讲解如何使用UniApp框架开发一个支持鸿蒙系统的W…...

设计模式之结构型:装饰器模式
装饰器模式(Decorator Pattern) 定义 装饰器模式是一种结构型设计模式,允许动态地为对象添加新功能,而无需修改其原始类。它通过将对象包装在装饰器类中,以组合代替继承,实现功能的灵活扩展(如 Java I/O …...
mysql分布式教程
MySQL 主从复制 主从复制原理:MySQL 主从复制是指数据可以从一个 MySQL 数据库服务器主节点复制到一个或多个从节点。主库将写操作记录在二进制日志文件中,从库的 IO 线程请求读取主库的二进制日志并写入中继日志,然后 SQL 线程执行中继日志中…...

MySQL安装及启用详细教程(Windows版)
MySQL安装及启用详细教程(Windows版) 📋 概述 本文档将详细介绍MySQL数据库在Windows系统下的下载、安装、配置和启用过程。 📥 MySQL下载 官方下载地址 官方网站: https://dev.mysql.com/downloads/社区版本: https://dev.my…...
Vue3.5 企业级管理系统实战(二十一):菜单权限
有了菜单及角色管理后,我们还需要根据用户访问的token,去获取用户信息,根据用户的角色信息,拉取所有的菜单权限,进而生成左侧菜单树数据。 1 增加获取用户信息 api 在 src/api/user.ts 中,添加获取用户信…...
kafka幂等生产者和事务生产者区别
#作者:张桐瑞 文章目录 消息交付可靠性保障什么是幂等性(Idempotence)?幂等性Producer事务事务型Producer 消息交付可靠性保障 所谓的消息交付可靠性保障,是指Kafka对Producer和Consumer要处理的消息提供什么样的承诺…...

【HarmonyOS Next之旅】DevEco Studio使用指南(二十九) -> 开发云数据库
目录 1 -> 开发流程 2 -> 创建对象类型 3 -> 添加数据条目 3.1 -> 手动创建数据条目文件 3.2 -> 自动生成数据条目文件 4 -> 部署云数据库 1 -> 开发流程 云数据库是一款端云协同的数据库产品,提供端云数据的协同管理、统一的数据模型和…...

批量导出CAD属性块信息生成到excel——CAD C#二次开发(插件实现)
本插件可实现批量导出文件夹内大量dwg文件的指定块名的属性信息到excel,效果如下: 插件界面: dll插件如下: 使用方法: 1、获取此dll插件。 2、cad命令行输入netload ,加载此dll(要求AutoCAD&…...
可视化大屏如何制作
超详细!手把手教你制作可视化大屏 在当今数字化时代,数据犹如一座蕴藏无尽价值的宝藏,而可视化大屏则是开启这座宝藏大门、让数据价值得以充分展现的关键钥匙。无论是企业运营监控、数据分析展示,还是项目成果汇报,可视…...

Goreplay最新版本的安装和简单使用
一:概述 Gor 是一个开源工具,用于捕获实时 HTTP 流量并将其重放到测试环境中,以便使用真实数据持续测试您的系统。它可用于提高对代码部署、配置更改和基础设施更改的信心。简单易用。 项目地址:buger/goreplay: GoReplay is an …...

Android Studio 解决报错 not support JCEF 记录
问题:Android Studio 安装Markdown插件后,报错not support JCEF不能预览markdown文件。 原因:Android Studio不是新装,之前没留意IDE自带的版本是不支持JCEF的。 解决办法: 在菜单栏选中Help→Find Actionÿ…...
SMT高速贴片机核心技术深度剖析
内容概要 在智能制造升级背景下,SMT高速贴片机的性能直接影响电子产品的生产效率和可靠性。本文将从微米级贴装精度的实现机制出发,探讨高速运动控制与精准定位的协同优化方案,同时分析视觉系统在多类型元件识别中的动态补偿策略。针对消费电…...

sigmastar实现SD卡升级
参考文章:http://wx.comake.online/doc/DD22dk2f3zx-SSD21X-SSD22X/customer/development/software/Px/zh/sys/P3/usb%20&%20sd%20update.html#21-sd 1、构建SD卡升级包 在project下make image完成后使用make_sd_upgrade_sigmastar.sh脚本打包SD卡升级包。 ./make_sd_up…...

kafka学习笔记(三、消费者Consumer使用教程——配置参数大全及性能调优)
本章主要介绍kafka consumer的配置参数及性能调优的点,其kafka的从零开始的安装到生产者,消费者的详解介绍、源码及分析及原理解析请到博主kafka专栏 。 1.消费者Consumer配置参数 配置参数默认值含义bootstrap.servers无(必填)…...
yarn、pnpm、npm
非常好,这样从“问题驱动 → 工具诞生 → 优化演进”的角度来讲,更清晰易懂。下面我按时间线和动机,把 npm → yarn → pnpm 的演变脉络讲清楚。 🧩 一、npm 为什么一开始不够好? 早期(npm v4 及之前&…...
JVM——Truffle:语言实现框架
引入 在编程语言的实现领域,传统的编译器和解释器设计往往面临着复杂性和性能优化的双重挑战。尤其是对于动态语言,解释器的效率问题一直是一个难以突破的瓶颈。而 Truffle 框架的出现,为这一难题提供了全新的解决方案。Truffle 是一个高性能…...
C++ STL vector容器详解:从原理到实践
引言 亲爱的小伙伴们,今天我要和大家分享一个C编程中的"神器"——vector容器!作为STL(标准模板库)中最常用的容器之一,vector就像是一个"超级数组",既有数组的高效随机访问特性&#…...
视频压制(Video Encoding/Compression)
视频压制(Video Encoding/Compression) 视频压制是指通过特定的算法和技术,将原始视频文件转换为更小体积或更适合传播的格式的过程。其核心目的是在尽量保持画质的前提下,减少视频的文件大小,或适配不同播放设备、网络环境的需求…...

【论文笔记】Transcoders Find Interpretable LLM Feature Circuits
Abstract 机制可解释性(mechanistic interpretability)的核心目标是路径分析(circuit analysis):在模型中找出与特定行为或能力对应的稀疏子图。 然而,MLP 子层使得在基于 Transformer 的语言模型中进行细粒度的路径分析变得困难。具体而言,…...
音视频融合中的语音分离技术实现
音视频融合中的语音分离技术实现 一、任务概述 语音分离是音频信号处理的核心任务,旨在从混合音频中分离出目标语音。音视频融合技术通过结合视觉信息(如嘴唇运动)显著提升分离效果。本方案将实现一个基于深度学习的音视频融合语音分离系统。 二、系统架构 #mermaid-svg-3…...

每天总结一个html标签——a标签
文章目录 一、定义与使用说明二、支持的属性三、支持的事件四、默认样式五、常见用法1. 文本链接2. 图片链接3. 导航栏 在前端开发中,a标签(锚点标签)是最常用的HTML标签之一,主要用于创建超链接,实现页面间的跳转或下…...
在Babylon.js中创建3D文字:简单而强大的方法
引言 在3D场景中添加文字是许多WebGL项目的常见需求。Babylon.js提供了多种创建3D文字的方法,其中使用TextBlock结合平面网格是一种简单而高效的方式。本文将介绍如何使用Babylon.js的GUI系统在3D空间中创建美观的文字效果。 方法概述 Babylon.js的GUI系统允许我…...
CSS 渐变完全指南:从基础概念到实战案例(线性渐变/径向渐变/重复渐变)
一、什么是 CSS 渐变? 渐变是网页设计中常用的视觉效果,指两种或多种颜色之间的平滑过渡。CSS 提供了强大的渐变功能,无需依赖图片即可创建复杂的色彩过渡效果,主要分为线性渐变和径向渐变两大类。 二、线性渐变(Line…...
初识Docker:容器化技术的入门指南
初识Docker:容器化技术的入门指南 一、Docker是什么:容器化技术的核心概念二、Docker的核心优势2.1 环境一致性2.2 高效部署与快速迭代2.3 资源利用率高 三、Docker的安装与基本使用3.1 安装Docker3.2 Docker基本概念3.3 第一个Docker容器体验 四、Docke…...

android binder(1)基本原理
一、IPC 进程间通信(IPC,Inter-Process Communication)机制,用于解决不同进程间的数据交互问题。 不同进程之间用户地址空间的变量和函数是不能相互访问的,但是不同进程的内核地址空间是相同和共享的,我们可…...

行业分析---小米汽车2025第一季度财报
1 背景 最近几年是新能源汽车的淘汰赛,前短时间比亚迪再次开始了降价,导致一片上市车企的股价大跌,足见车圈现在的敏感度。因此笔者会一直跟踪新势力车企的财报状况,对之前财报分析感兴趣的读者朋友可以参考以下博客:…...

边缘计算网关支撑医院供暖系统高效运维的本地化计算与边缘决策
一、项目背景 医院作为人员密集的特殊场所,对供暖系统的稳定性和高效性有着极高的要求。其供暖换热站传统的人工现场监控方式存在诸多弊端,如人员值守成本高、数据记录不及时不准确、故障发现和处理滞后、能耗难以有效监测和控制等,难以满足…...
GO环境配置
Go 语言环境安装指南(Windows 版) 以下是在 Windows 系统上安装 Go 语言环境的完整步骤: 准备工作 操作系统要求:Windows 7 或更高版本(推荐 Windows 10/11)系统架构:64位(…...
`docker run`、`docker start`、`docker exec` 区别
🧠 先给你一句话理解: docker run ≈ docker create docker start docker exec(第一次) ✅ 三者的区别一览表 命令作用类比真实生活常用场景docker run创建 启动 执行命令(一次性)你买了一台新电脑&am…...