猿辅导组织一次抽奖活动,奖券的发放方式是:某个同学拿到全部的奖券 ,然后自己留一张,其他的分发给他周边的同学;其他同学收到奖券 后,自己留一张,再分发给周边还未收到过奖券 的其他同学,以此类推,直到每个同学都收到一张奖券 为止。 开奖时,每张奖券 会得到一个奖励值,每个同学最终奖励值除了要包含自己奖券的奖励值外,还可以额外加上从经由自己发出去的奖券中选择出一部分奖券的奖励值。但是如果不选择某张奖券,那么经由持有这张没被选择奖券的同学发出去的所有奖券都不能再选了。比如A把BCD的奖券发给了B,B再把CD的奖券分发给了CD,A可以只选择自己的奖券,可以选择ABCD的奖券,也可以选择AB或ABC或ABD的奖券,但是不能只选择AC或者AD的奖券。 奖励值当然是越大越好,大家一定也想知道最终大奖是多少,请你帮大家算一下吧。-笔试面试资料

这是qklbishe.com第8851 篇笔试面试资料
提供答案分析,通过本文《猿辅导组织一次抽奖活动,奖券的发放方式是:某个同学拿到全部的奖券 ,然后自己留一张,其他的分发给他周边的同学;其他同学收到奖券 后,自己留一张,再分发给周边还未收到过奖券 的其他同学,以此类推,直到每个同学都收到一张奖券 为止。 开奖时,每张奖券 会得到一个奖励值,每个同学最终奖励值除了要包含自己奖券的奖励值外,还可以额外加上从经由自己发出去的奖券中选择出一部分奖券的奖励值。但是如果不选择某张奖券,那么经由持有这张没被选择奖券的同学发出去的所有奖券都不能再选了。比如A把BCD的奖券发给了B,B再把CD的奖券分发给了CD,A可以只选择自己的奖券,可以选择ABCD的奖券,也可以选择AB或ABC或ABD的奖券,但是不能只选择AC或者AD的奖券。 奖励值当然是越大越好,大家一定也想知道最终大奖是多少,请你帮大家算一下吧。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

猿辅导组织一次抽奖活动,奖券的发放方式是:某个同学拿到全部的奖券,然后自己留一张,其他的分发给他周边的同学;其他同学收到奖券后,自己留一张,再分发给周边还未收到过奖券的其他同学,以此类推,直到每个同学都收到一张奖券为止。
开奖时,每张奖券会得到一个奖励值,每个同学最终奖励值除了要包含自己奖券的奖励值外,还可以额外加上从经由自己发出去的奖券中选择出一部分奖券的奖励值。但是如果不选择某张奖券,那么经由持有这张没被选择奖券的同学发出去的所有奖券都不能再选了。比如A把BCD的奖券发给了B,B再把CD的奖券分发给了CD,A可以只选择自己的奖券,可以选择ABCD的奖券,也可以选择AB或ABC或ABD的奖券,但是不能只选择AC或者AD的奖券。
奖励值当然是越大越好,大家一定也想知道最终大奖是多少,请你帮大家算一下吧。
猿辅导组织一次抽奖活动,奖券的发放方式是:某个同学拿到全部的奖券 ,然后自己留一张,其他的分发给他周边的同学;其他同学收到奖券 后,自己留一张,再分发给周边还未收到过奖券 的其他同学,以此类推,直到每个同学都收到一张奖券 为止。    开奖时,每张奖券 会得到一个奖励值,每个同学最终奖励值除了要包含自己奖券的奖励值外,还可以额外加上从经由自己发出去的奖券中选择出一部分奖券的奖励值。但是如果不选择某张奖券,那么经由持有这张没被选择奖券的同学发出去的所有奖券都不能再选了。比如A把BCD的奖券发给了B,B再把CD的奖券分发给了CD,A可以只选择自己的奖券,可以选择ABCD的奖券,也可以选择AB或ABC或ABD的奖券,但是不能只选择AC或者AD的奖券。    奖励值当然是越大越好,大家一定也想知道最终大奖是多少,请你帮大家算一下吧。 励志要变胖的人
解法1:拓扑排序,抽象为有向图,收到奖券的同学指向分发给他奖券的同学,也就是从底向上去计算
#include<bits/stdc++.h> using namespace std; #define ll long long int main(){     int n;     cin>>n;     vector<vector<ll>> e(n);     vector<ll> money(n);     vector<int> r(n,0);     ll ans=0;     for(int i=0;i<n;i++){         ll x,y;         cin>>x>>y;         money[i]=x;         ans=max(ans,money[i]);         if(y!=0){             e[i].push_back(y-2);             r[y-2]++;         }     }     queue<int> q;     for(int i=0;i<n;i++){         if(r[i]==0)             q.push(i);     }     while(!q.empty()){         int t=q.front();         q.pop();         //cout<<t<<" "<<money[t]<<endl;         for(int i=0;i<e[t].size();i++){             if(money[t]>0){                 money[e[t][i]]+=money[t];                 //money[e[t][i]]%=1000000003;                 ans=max(ans, money[e[t][i]]);             }             r[e[t][i]]--;             if(r[e[t][i]]==0)                 q.push(e[t][i]);         }     }     cout<<ans%1000000003; }

今天 17:25:45 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 猿辅导组织一次抽奖活动,奖券的发放方式是:某个同学拿到全部的奖券 ,然后自己留一张,其他的分发给他周边的同学;其他同学收到奖券 后,自己留一张,再分发给周边还未收到过奖券 的其他同学,以此类推,直到每个同学都收到一张奖券 为止。 开奖时,每张奖券 会得到一个奖励值,每个同学最终奖励值除了要包含自己奖券的奖励值外,还可以额外加上从经由自己发出去的奖券中选择出一部分奖券的奖励值。但是如果不选择某张奖券,那么经由持有这张没被选择奖券的同学发出去的所有奖券都不能再选了。比如A把BCD的奖券发给了B,B再把CD的奖券分发给了CD,A可以只选择自己的奖券,可以选择ABCD的奖券,也可以选择AB或ABC或ABD的奖券,但是不能只选择AC或者AD的奖券。 奖励值当然是越大越好,大家一定也想知道最终大奖是多少,请你帮大家算一下吧。-笔试面试资料

提供最优质的资源集合

立即查看 了解详情