Tree 2题解

Tree II

https://ac.nowcoder.com/acm/contest/9223/C

用队列来实现BFS遍历每一个结点的子结点,推出k叉树第t个结点的子结点的公式为:kt-k+2到kt+1;
最后如果查询到第n个点直接return;

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 
     * @param k int整型 表示完全k叉树的叉数k
     * @param a int整型vector 表示这棵完全k叉树的Bfs遍历序列的结点编号
     * @return long长整型
     */
    #define ll long long
    long long tree2(int k, vector<int>& a) {
        // write code here
        ll sum=0;
        queue<ll>q;
        q.push(1);
        while(q.size())
        {
            ll t=q.front();
            q.pop();
            for(int i=t*k-k+2;i<=k*t+1&&i<=a.size();i++)
            {
                    ll ans=a[i-1]^a[t-1];
                    sum+=ans;
                    q.push(i);
            }
        }
        return sum;
    }
};
全部评论

相关推荐

10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务