新人考试(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年春华为机试相关推荐

  1. 2022/7/26华为机试,Q2,上机迷迷糊糊的,搞完突然醒悟,自抱自泣!三道题附带答案

    21:52 2022/7/26华为机试三道题附带答案 备注:未ac,华为不难,难的是个人很难进入答题状态! 第一道 给定一个字符串,是工作记录的日志时间,时间为四段格式,AA:BB:CC:DDD 其中 ...

  2. 【华为OD机试 】篮球比赛(C++ Java JavaScript Python)

    华为od机试共有3道题,分值为100+100+200,总分为400分.考试时间 2.5h..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式.华为od机 ...

  3. 【华为OD机试 2023】 字符串解密(C++ Java JavaScript Python)

    华为od机试共有3道题,分值为100+100+200,总分为400分.时间限制为150分钟或3个小时..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式 ...

  4. 【华为OD机试 】 免单统计(C++ Java JavaScript Python)

    华为od机试共有3道题,分值为100+100+200,总分为400分.考试时间 2.5h..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式.华为od机 ...

  5. 【华为机试真题 Python实现】篮球比赛【2022 Q1 Q2 | 200分】

    文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...

  6. 【华为机试真题 Python实现】2022年4、5月高频机试题

    文章目录 2022年4.5月高频机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值 ...

  7. 华为机试2022.4.13:硬件资源分配

    第一题:老样子,题目臭长,分数最少. 硬件资源分配 题目描述 有M台服务器,每台服务器有以下属性:编号.CPU核数(1~100).内存.CPU架构(0~8).是否支持NP加速的标识(0,1).然后有一 ...

  8. 2022.06.26 华为od机试真题

    华为od机试真题 1.最长连续子串 2.正方形数量 3.二叉树层次遍历(不会做) 1.最长连续子串 有N个正整数组成的一个序列给定一个整数sum求长度最长的的连续子序列使他们的和等于sum返回次子序列 ...

  9. 【华为机试真题 Python实现】2022年4季度最新机试题

    文章目录 2022年4季度最新机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值计 ...

最新文章

  1. python导入同级目录 上级目录文件
  2. FreeRTOS 的命名规则
  3. before和after怎么区分_如何区分before和after~有时候觉得两者可以通用
  4. uvision4 ide已停止工作
  5. mysql 恢复root用户_mysql误删root用户恢复方案
  6. CF997E. Good Subsegments(线段树,单调栈)
  7. UML2.0 学习笔记
  8. 【转载】Java中String类的方法及说明
  9. linux快捷键列表,全面总结Linux快捷键的使用
  10. VxWorks的漏洞分析与解决方案
  11. highcharts去水印方法
  12. 微软卷土重来 只收购雅虎搜索业务
  13. Windows消息ID大全
  14. 关于Windows api 多屏幕显示器识别ID问题。未解决
  15. 踩坑记:Git的下载、安装和配置
  16. 阿里巴巴400集python教程_摆摊吧,程序员!阿里巴巴力荐Python400集视频
  17. 这一年又是稀里糊涂地度过了
  18. activity_manager_server
  19. 空降了位领导,三个月后我被离职了!
  20. mysql数据库视图索引_MySQL数据库的视图、索引

热门文章

  1. linux top命令及结果详解 top -p 查看Linux程序运行进程
  2. Java位运算(面试)
  3. 使用C++模拟实现道具店购物功能
  4. 数码相机的原理等小知识
  5. java如何防止死锁_Java 死锁以及如何避免?
  6. java usbkey数字证书_Java 密钥库和数字证书
  7. c语言EasyX库入门学习
  8. linux通过修改时间排序,linux按修改时间排序
  9. 玩转3D Swiper美女性感秀之思路分析总结
  10. unity 场景ab包_Unity加载AB包