题解 | #树与序列问题#

树与序列问题

http://www.nowcoder.com/practice/c66c94e7d83040e8af40514746967fbb

#define ll long long

class Solution { public:

long long work(int n, long long seed1, long long seed2, long long seed3) {
    vector<int> u(n);//u[i],v[i]分别表示第i条边的两个端点
    vector<int> v(n);
    vector<int> w(n);//w[i]表示第i条边的边权
    ll res=0;
    for(int i=1;i<n;i++){//依照题目构造树
        ll seed4=((seed1+seed2)%998244353)*seed3%998244353;
        u[i]=i+1;
        v[i]=(seed4%i)+1;
        w[i]=seed2*seed3%12131415;
        seed3=seed2;
        seed2=seed1;
        seed1=seed4;
    }
    for(int i=1;i<n;i++){//各边权值相加
        res+=w[i];
    }
    return res;
}

};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务