TB椰程 TypeBuddy 打字搭子

2024-12 · 6级 · 树上游走

GESP 标程 · 考级真题 · 代码 · cpp · 难度 5/5 · 共 1038 字

CCF 原卷官方标程 · 字符串、位运算、树与二叉树、栈与队列 · 本地编译通过

  • 2024-12
  • 字符串

正文

// GESP 2024-12 C++ 6级 编程题 1 · 树上游走
// 原题:https://oj.yecheng.tv/p/gs2412l6p1
// 官方原卷:https://gesp.ccf.org.cn/101/attach/1733580036243488.pdf
// 题意:小杨有一棵包含无穷节点的二叉树(即每个节点都有左儿子节点和右儿子节点;除根节点外,每个节点都有父节点),其中根节点的编号为 ……
// 知识点:字符串、位运算、树与二叉树、栈与队列
// 参考程序:CCF 原卷官方标程,PDF 抽取后已去行号;本地编译核验通过,供打字练习
// 原卷样例验证:样例验证 1/1 通过
//
#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;
}

GESP 标程 · 考级真题的其它内容

打字首页 · 英语学习中心 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK