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

前世档案(不用二叉树语法秒杀版c++)

网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。

path.jpg

现在我们把结论从左到右顺序编号,编号从 1 开始。这里假设回答都是简单的“是”或“否”,又假设回答“是”对应向左的路径,回答“否”对应向右的路径。给定玩家的一系列回答,请你返回其得到的结论的编号。

输入格式:

输入第一行给出两个正整数:N(≤30)为玩家做一次测试要回答的问题数量;M(≤100)为玩家人数。

随后 M 行,每行顺次给出玩家的 N 个回答。这里用 y 代表“是”,用 n 代表“否”。

输出格式:

对每个玩家,在一行中输出其对应的结论的编号。

输入样例:

3 4
yny
nyy
nyn
yyn

输出样例:

3
5
6
2

哪需要啥二叉树的思想呀,身为基础题这题其实用不了多少思考,这题其实就是相当于给了我们一个二进制的编码只是用y和n代替了,然后让我们求编号,就是把二进制的数转化为十进制的数嘛下面直接给出代码 

代码如下:

#include<iostream>
using namespace std;
int main()
{int n, m;cin >> n >> m;while (m--) {string a;cin >> a;int base = 1,sum=0;//base为每个位对应的二进制编码2次方的值for (int i = a.size() - 1; i >= 0; i--) {if (a[i] == 'n') sum += base;//相当于如果为1这个位的值就要算base *= 2;}cout << sum+1 << endl;//二进制转完十进制的数是下标从0开始算的,因此要加一满足题意}return 0;
}

http://www.lryc.cn/news/319463.html

相关文章:

  • Java基础 - 9 - 集合进阶(二)
  • javaEE——线程的等待和结束
  • sqlplus设置提示符
  • macbook删除软件只需几次点击即可彻底完成?macbook删除软件没有叉 苹果笔记本MacBook电脑怎么卸载软件? cleanmymac x怎么卸载
  • Unity WebGL ios 跳转URL
  • 机器学习模型—XGBoost
  • 在Swift中集成Socket.IO进行实时通信
  • vue防止用户连续点击造成多次提交
  • upload-labs通关方式
  • 本地用AIGC生成图像与视频
  • java 如何使用Lambda表达式实现递归和循环的替代品
  • 由浅到深认识C语言(12):位段/位域
  • antd5 虚拟列表原理(rc-virtual-list)
  • 机器学习-04-分类算法-03KNN算法
  • Learn OpenGL 08 颜色+基础光照+材质+光照贴图
  • springboot多模块下swaggar界面出现异常(Knife4j文档请求异常)或者界面不报错但是没有显示任何信息
  • 【系统架构设计师】系统工程与信息系统基础 01
  • python自动化之(django)(2)
  • C语言 内存函数
  • 145 Linux 网络编程1 ,协议,C/S B/S ,OSI 7层模型,TCP/IP 4层模型,
  • 【Java】List, Set, Queue, Map 区别?
  • 打卡学习kubernetes——了解k8s基本概念
  • 特殊内齿轮加工的另一种选择
  • Visual Studio配置libtorch(cuda安装一步到位)
  • 【工具】一键生成动态歌词字幕
  • Linux/Ubuntu/Debian从控制台启动程序隐藏终端窗口
  • Android中的设计模式---单例模式
  • 【NLP笔记】文本分词、清洗和标准化
  • 2024 年系统架构设计师(全套资料)
  • springboot蛋糕订购小程序的设计与实现