您的位置 首页 > 自考资讯 > 政策资讯

C ++ GESP CET-6 2024年12月6日真实的问题和分析

大家好,关于C ++ GESP CET-6 2024年12月6日真实的问题和分析很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2判断题

3编程题

树上游走

C  ++ GESP  CET-6 2024年12月6日真实的问题和分析

题目分析

  • 当前结点编号为 u,父节点 u/2,左孩子 u*2,右孩子 u*2+1
  • 但是数据范围非常大,虽然题目说明最后结点编号不超过1012,但是中间过程可能会超过,例如,连续 105 个 L,再连续 105 个 U,实际结点编号没变,但是数据量是巨大的。
  • 解决方案就是将序列中所有的 U 都去掉,然后再计算 u 的值。
  • 参考程序

    #include <bits/stdc++.h>using namespace std;typedef long long LL;LL n, s;deque<char> dq;int main() { cin >> n >> s; while(n--){ char op; cin >> op; if(op == 'U'){ if(dq.size()) dq.pop_back(); else if(s != 1) s >>= 1; } else dq.push_back(op); } while(dq.size()){ if(dq.front() == 'L') s <<= 1; else s = (s << 1) + 1; dq.pop_front(); } cout << s; return 0;}

    运送物资

    C  ++ GESP  CET-6 2024年12月6日真实的问题和分析

    题目分析

    贪心算法,如果a-b>0,则尽量选择靠左侧的站点,按照 a-b 从大到小排序。

    如果 b-a>0,则尽量选择靠右侧站点。

    注意将给定站点按照位置从小到大排好序。

    参考程序

    本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

    Copyright © 2023