2022年春华为机试
新人考试(100分)
有10道2分题,10道4分题,5道8分题,满分100分,答对得分,答错不得分,累计错三道则停止作答结算分数
输入n分
输出作答情况的数量m
#include<bits/stdc++.h>
using namespace std;
// we have defined the necessary header files here for this problem.
// If additional header files are needed in your program, please import here.
int timu[]={2,2,2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,4,4,8,8,8,8,8};
int tag[25]={};
int times=0;
int sum=0;
int score;
void dfs(int n,int now){if(now<score){dfs(n+1,now+timu[n]);if(times<2){times++;dfs(n+1,now);times--;}}else if(now==score)sum++;else return;
}
int main()
{cin>>score;// please define the C++ input here. For example: int a,b; cin>>a>>b;;// please finish the function body here.// please define the C++ output here. For example:cout<<____<<endl;dfs(0,0);cout<<sum;return 0;
}
子树替换(200分)
第一行以数组的形式输入一个层次遍历的树,无子节点则以0标识;
第二行输入从根节点到所替换节点的路径;
第三行输入要替换的子树Q,输入方式同第一行;
如图示则输入[1,2,3,0,5,0,4]
锁定4号结点,则输入路径为\1\3\4
实际例题中节点上的序号限定为1-9,可能重复,但路径保证唯一
替换子树要求:替换节点的所有子节点清空;子树Q完全存在于得到的新树;原来的树中与替换节点无关的节点完全保留
例如用树6->7,8(6是根节点,7、8分别为左右子节点)替换\1\3,则得到的新树应为[1,2,6,0,5,7,8]
最终输出是不输出空节点,即最终输出[1,2,6,5,7,8]
#include<bits/stdc++.h>
using namespace std;
// we have defined the necessary header files here for this problem.
// If additional header files are needed in your program, please import here.
vector<int> origin,dir,sub;
void clear(int node){if(node<=origin.size())origin[node-1]=0;else return;clear(node*2);clear(node*2+1);return ;
}
void fun(int node,int tag){if(tag<=sub.size()){if(node<origin.size()){origin[node-1]=sub[tag-1];}else{origin.push_back(sub[tag-1]);};fun(node*2,tag*2);fun(node*2+1,tag*2+1);}else return;
}
int main()
{string s;cin>>s;for(int i=0;i<s.length();i++){if(s[i]!=','&&s[i]!='['&&s[i]!=']')origin.push_back(s[i]-'0');}cin>>s;for(int i=0;i<s.length();i++){if(s[i]!='/')dir.push_back(s[i]-'0');}cin>>s;for(int i=0;i<s.length();i++){if(s[i]!=','&&s[i]!='['&&s[i]!=']')sub.push_back(s[i]-'0');}
// for(int i=0;i<origin.size();i++)cout<<origin[i];
// for(int i=0;i<dir.size();i++)cout<<dir[i];
// for(int i=0;i<sub.size();i++)cout<<sub[i];int i=1;int node=1;while(i<dir.size()){if(origin[node*2-1]==dir[i])node=node*2;else if(origin[node*2]==dir[i])node=node*2+1;i++;}//for(int i=0;i<origin.size();i++)cout<<origin[i];clear(node);fun(node,1);// please define the C++ input here. For example: int a,b; cin>>a>>b;;// please finish the function body here.// please define the C++ output here. For example:cout<<____<<endl;cout<<'['<<origin[0];for(int i=1;i<origin.size();i++)if(origin[i]!=0)cout<<','<<origin[i];cout<<']';return 0;
}
寻找最短路径(300分)
给定一个树,树上的节点标号x表示在该节点能处理x个任务,x同时表示在该节点停留的时间,此外,x与y节点如果存在父子节点关系,那么|x-y|表示从x节点跳转到y节点的时长,同时也是y节点跳转到x节点的时长。
输入四行
第一行:节点总数
第二行:层次遍历树的每个节点,得到每个节点标号组成的数组
第三行:层次遍历树的每个节点,得到每个节点父节点的标号组成的数组,一个节点最多有两个子节点,根节点的父节点标号用0表示
第四行:任务总数
输出:完成任务所用的最短时间;若不能完成任务,则输出-1
不规定路径的起点,将该树当成图看待,树中的任意一段路径上的节点序号之和大于或等于任务总数,那它就是可以用于考虑用时是否最短的路径,路径中的每个节点只能出现一次。
这道题还是用dfs做就好了,所有可能的路径遍历一次,看看符合条件的路径中哪条路径用时最短,记得用一个标签标识某个节点是不是已经走过了,小编当时敲完了代码提交之后编译错误,然后就时间结束了,呜呜呜~
总得来说题不是很难,打字快一点应该可以做得完!
2022年春华为机试相关推荐
- 2022/7/26华为机试,Q2,上机迷迷糊糊的,搞完突然醒悟,自抱自泣!三道题附带答案
21:52 2022/7/26华为机试三道题附带答案 备注:未ac,华为不难,难的是个人很难进入答题状态! 第一道 给定一个字符串,是工作记录的日志时间,时间为四段格式,AA:BB:CC:DDD 其中 ...
- 【华为OD机试 】篮球比赛(C++ Java JavaScript Python)
华为od机试共有3道题,分值为100+100+200,总分为400分.考试时间 2.5h..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式.华为od机 ...
- 【华为OD机试 2023】 字符串解密(C++ Java JavaScript Python)
华为od机试共有3道题,分值为100+100+200,总分为400分.时间限制为150分钟或3个小时..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式 ...
- 【华为OD机试 】 免单统计(C++ Java JavaScript Python)
华为od机试共有3道题,分值为100+100+200,总分为400分.考试时间 2.5h..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式.华为od机 ...
- 【华为机试真题 Python实现】篮球比赛【2022 Q1 Q2 | 200分】
文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...
- 【华为机试真题 Python实现】2022年4、5月高频机试题
文章目录 2022年4.5月高频机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值 ...
- 华为机试2022.4.13:硬件资源分配
第一题:老样子,题目臭长,分数最少. 硬件资源分配 题目描述 有M台服务器,每台服务器有以下属性:编号.CPU核数(1~100).内存.CPU架构(0~8).是否支持NP加速的标识(0,1).然后有一 ...
- 2022.06.26 华为od机试真题
华为od机试真题 1.最长连续子串 2.正方形数量 3.二叉树层次遍历(不会做) 1.最长连续子串 有N个正整数组成的一个序列给定一个整数sum求长度最长的的连续子序列使他们的和等于sum返回次子序列 ...
- 【华为机试真题 Python实现】2022年4季度最新机试题
文章目录 2022年4季度最新机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值计 ...
最新文章
- python导入同级目录 上级目录文件
- FreeRTOS 的命名规则
- before和after怎么区分_如何区分before和after~有时候觉得两者可以通用
- uvision4 ide已停止工作
- mysql 恢复root用户_mysql误删root用户恢复方案
- CF997E. Good Subsegments(线段树,单调栈)
- UML2.0 学习笔记
- 【转载】Java中String类的方法及说明
- linux快捷键列表,全面总结Linux快捷键的使用
- VxWorks的漏洞分析与解决方案
- highcharts去水印方法
- 微软卷土重来 只收购雅虎搜索业务
- Windows消息ID大全
- 关于Windows api 多屏幕显示器识别ID问题。未解决
- 踩坑记:Git的下载、安装和配置
- 阿里巴巴400集python教程_摆摊吧,程序员!阿里巴巴力荐Python400集视频
- 这一年又是稀里糊涂地度过了
- activity_manager_server
- 空降了位领导,三个月后我被离职了!
- mysql数据库视图索引_MySQL数据库的视图、索引