题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805059118809088

题意:给定n个人,编号0~n-1,0为祖先,每个人有一个师傅,每次从师傅传功夫到徒弟时,功力值会削弱r,但可能会出现得道者,功力翻n倍,计算所有得道者功力值之和。

思路:因为计算功力值时要从祖先开始逐渐向下计算,所以我们需要存储每个人的徒弟,然后从上向下遍历即可,我这里用的是邻接表实现的,定义maxn个表头结点head,head[i]其中包括它的第一个徒弟编号nxt,翻的倍数,功力值;定义maxn个表结点,指向其兄弟结点。然后用dfs从祖先编号0开始搜即可,但我被两个细节点卡了一个多小时,卡到崩溃QAQ:1.输入的r是[0,100]的值,还需除100; 2. 我写代码没带脑子,在dfs函数中用全局变量tmp作为指向徒弟的指针,然后程序一直在那运行错误的结果...

AC代码:

 #include<bits/stdc++.h>
using namespace std; const int maxn=;
struct node{
int nxt,bg;
double gl;
}head[maxn]; int n,k,tmp,nxt[maxn];
double z,r,sum; void dfs(int p){
if(head[p].bg)
sum+=head[p].gl*head[p].bg;
else{
int t=head[p].nxt;
while(t){
head[t].gl=head[p].gl*r;
dfs(t);
t=nxt[t];
}
}
} int main(){
scanf("%d%lf%lf",&n,&z,&r);
r=1.0-0.01*r;
head[].gl=z;
for(int i=;i<n;++i){
scanf("%d",&k);
if(!k)
scanf("%d",&head[i].bg);
else
while(k--){
scanf("%d",&tmp);
nxt[tmp]=head[i].nxt;
head[i].nxt=tmp;
}
}
dfs();
printf("%lld\n",(long long)sum);
return ;
}

pta l2-20(功夫传人)的更多相关文章

  1. 天梯赛 L2-020. 功夫传人 BFS

    L2-020. 功夫传人 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一门武功能否传承久远并被发扬光大,是要看缘分的.一般来 ...

  2. L2-020. 功夫传人*

    L2-020. 功夫传人 参考博客 #include<vector> #include<cstring> #include<algorithm> using nam ...

  3. L2-020. 功夫传人(dfs+vector 或者 邻接矩阵+dij+优先队列)

    L2-020. 功夫传人 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一门武功能否传承久远并被发扬光大,是要看缘分的.一般来 ...

  4. PAT 天梯杯 L2-020 功夫传人

    L2-020. 功夫传人 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一门武功能否传承久远并被发扬光大,是要看缘分的.一般来 ...

  5. PAT L2-020 功夫传人【BFS】

    一门武功能否传承久远并被发扬光大,是要看缘分的.一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱-- 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹.挖到 ...

  6. PAT L2-020 功夫传人

    https://pintia.cn/problem-sets/994805046380707840/problems/994805059118809088 一门武功能否传承久远并被发扬光大,是要看缘分 ...

  7. 天梯赛 L2-20 功夫传人 (深搜)

    一门武功能否传承久远并被发扬光大,是要看缘分的.一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱-- 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹.挖到 ...

  8. 【PAT-L2-020】功夫传人

    链接:https://www.patest.cn/contests/gplt/L2-020 一门武功能否传承久远并被发扬光大,是要看缘分的.一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟 ...

  9. CCCC L2-020. 功夫传人 搜索 bfs && 精度+ 特判

    https://www.patest.cn/contests/gplt/L2-020 题解:给你一颗树,让你遍历一遍,顺便更新一下数据,每次到根节点时将其对应的数据加到ans上面.这里用的bfs. 坑 ...

随机推荐

  1. leetcode983

    public class Solution { public int MincostTickets(int[] days, int[] costs) { ; ; ]; dp[] = ; ; i < ...

  2. Redis位图实现用户签到功能

    场景需求 适用场景如签到送积分.签到领取奖励等,大致需求如下: 签到1天送1积分,连续签到2天送2积分,3天送3积分,3天以上均送3积分等. 如果连续签到中断,则重置计数,每月初重置计数. 当月签到满 ...

  3. delphi Berlin Could not load SSL library.

    delphi Berlin Could not load SSL library. TIdSSLIOHandlerSocketOpenSSL 解决办法:下载合适的版本文件libssl32.dll Id ...

  4. Tomcat的相关配置问题

    Tomcat的目录结构bin ---  存放启动和关闭tomcat的脚本文件 conf --- 存放tomcat的各种配置文件  (主要有server.xml,context.xml,web.xml) ...

  5. 机器学习入门-文本特征-word2vec词向量模型 1.word2vec(进行word2vec映射编码)2.model.wv['sky']输出这个词的向量映射 3.model.wv.index2vec(输出经过映射的词名称)

    函数说明: 1. from gensim.model import word2vec  构建模型 word2vec(corpus_token, size=feature_size, min_count ...

  6. springmvc简单教程

    IDEA建立Spring MVC Hello World 详细入门教程(转自)   引子,其实从.NET转Java已经有几个月时间了,项目也做了不少,但是很多配置都是根据公司模板或者网上教程比忽略画瓢 ...

  7. ARP欺骗与MITM(中间人攻击)实例

    ARP协议(address resolution protocol):地址解析协议 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析 ...

  8. 遍历DOM树,链式操作

    如果需要在同一个选取结果上使用多个jQuery方法,可以同时列出这些方法,并用.隔开,如下面的代码. 1 $("#one").hide().delay(500).fadeIn(15 ...

  9. [PHP]PHP的session机制,配置与高级应用

    ---------------------------------------------------------------------------------------------------- ...

  10. Swift自定义UINavigationController(背景颜色、背景图片、返回按钮设置、字体大小等)

    1.0  自定义UINavigationController时,背景图片.颜色等只需要设置一次,所以我们可以重写  initializa  这个方法来实现我们想要的效果 override  class ...