GESP2024年12月认证C++六级( 第三部分编程题(1)树上游走)

news/2025/1/15 22:51:48 标签: c++, 算法, 开发语言, GESP6级

参考程序:

#include <iostream>
#include <string>

using namespace std;

int main() {
    long long n, s;  // n为移动次数,s为初始节点编号
    string moves;    // 移动指令串

    // 输入处理
    cin >> n >> s;
    cin >> moves;

    long long currentNode = s;  // 当前节点编号

    // 遍历每个移动指令并进行操作
    for (char move : moves) {
        if (move == 'U') {
            if (currentNode > 1) {
                currentNode /= 2;  // 向上移动到父节点
            }
        } else if (move == 'L') {
            currentNode = 2 * currentNode;  // 向左移动到左儿子
        } else if (move == 'R') {
            currentNode = 2 * currentNode + 1;  // 向右移动到右儿子
        }
    }

    // 输出最终的节点编号
    cout << currentNode << endl;

    return 0;
}

程序改进(引入栈与位运算实现数据防溢出)

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll INF = 1e12;
int n;
stack<char> st;
string c;
ll s;
int main()
{
	cin >> n >> s >> c;
	for(int i = 0; i < n; i ++)
	{
		if(c[i] == 'U')
		{
			if(s == 1) continue;
			if(st.size())
			{
				st.pop();
				continue;
			}
			s >>= 1;
		}
		else if(c[i] == 'L')
		{
			if((s << 1) > INF)
			{
				st.push('L');
				continue;
			}
			s = s << 1;
		}
		else
		{
			if((s << 1 | 1) > INF)
			{
				st.push('R');
				continue;
			}
			s = s << 1 | 1;
		}
	}
	cout << s << "\n";
	return 0;
}


http://www.niftyadmin.cn/n/5824423.html

相关文章

【Golang 面试题】每日 3 题(三十)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

刀客doc:快手的商业化架构为什么又调了?

一、 1月10日&#xff0c;快手商业化及电商事业部进行新一轮的架构调整。作为2025年快手的第一次大调整&#xff0c;变动最大的是负责广告业务的商业化事业部。快手商业化将原来的8个业务中心&#xff0c;现在统合成了5个&#xff0c;行业归拢看上去更加明晰了。 根据自媒体《…

Android车机DIY开发之软件篇(九)默认应用和服务修改

Android车机DIY开发之软件篇(九)默认应用和服务修改 Car默认应用位置 ~/packages/apps/Car 增加APP 1.增加 XXXX.app 和Android.mk 2. 修改~/build/make/target/product/handheld_system_ext.mk Android默认APK位置 ~/packages/apps 1.增加文件夹 app和mk文件 2.build/mak…

VUE3 + Ant Design Vue4 开发笔记

异常记录 [Vue warn]: Extraneous non-props attributes (options) were passed to component but could not be automatically inherited because component renders fragment or text root nodes 定位原因解决方法 错误的中文释义&#xff1a;[Vue 警告]&#xff1a;传递给…

C#读写ini配置文件保存设置参数

本示例使用设备&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1b5P5rkA&ftt&id22173428704 [DllImport("kernel32", CharSet CharSet.Unicode)] public static extern uint GetPrivateProfileString(string lpAppName, stri…

AIGC时代 | 探索AI Agent的奥秘:四种设计模式引领未来智能趋势

AIGC时代 | 探索AI Agent的奥秘&#xff1a;四种设计模式引领未来智能趋势 引言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;AI Agent作为新一代的智能代理&#xff0c;正在引领工作流程的革新。AI Agent&#xff0c;即人工智能代理&#xff0c;是一种…

XML序列化和反序列化的学习

1、基本介绍 在工作中&#xff0c;经常为了调通上游接口&#xff0c;从而对请求第三方的参数进行XML序列化&#xff0c;这里常使用的方式就是使用JAVA扩展包中的相关注解和类来实现xml的序列化和反序列化。 2、自定义工具类 import javax.xml.bind.JAXBContext; import javax.x…

Mongodb相关内容

Mongodb相关内容 1、Windows平台安装2、Linux平台安装3、基本常用命令文档更新删除文档分页查询索引 pymongo操作 客户端下载&#xff1a;https://download.csdn.net/download/guoqingru0311/90273435 1、Windows平台安装 方式一&#xff1a; 方式2&#xff1a; 方式3&#…