L2-020. 功夫传人

一门武功能否传承久远并被发扬光大,是要看缘分的。一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹、挖到了特别的秘笈),会将功夫的威力一下子放大N倍 —— 我们称这种弟子为“得道者”。

这里我们来考察某一位祖师爷门下的徒子徒孙家谱:假设家谱中的每个人只有1位师傅(除了祖师爷没有师傅);每位师傅可以带很多徒弟;并且假设辈分严格有序,即祖师爷这门武功的每个第i代传人只能在第i-1代传人中拜1个师傅。我们假设已知祖师爷的功力值为Z,每向下传承一代,就会减弱r%,除非某一代弟子得道。现给出师门谱系关系,要求你算出所有得道者的功力总值。

输入格式:

输入在第一行给出3个正整数,分别是:N(<=105)——整个师门的总人数(于是每个人从0到N-1编号,祖师爷的编号为0);Z——祖师爷的功力值(不一定是整数,但起码是正数);r ——每传一代功夫所打的折扣百分比值(不超过100的正数)。接下来有N行,第i行(i=0, ..., N-1)描述编号为i的人所传的徒弟,格式为:

Ki ID[1] ID[2] ... ID[Ki]

其中Ki是徒弟的个数,后面跟的是各位徒弟的编号,数字间以空格间隔。Ki为零表示这是一位得道者,这时后面跟的一个数字表示其武功被放大的倍数。

输出格式:

在一行中输出所有得道者的功力总值,只保留其整数部分。题目保证输入和正确的输出都不超过1010

输入样例:

10 18.0 1.00
3 2 3 5
1 9
1 4
1 7
0 7
2 6 1
1 8
0 9
0 4
0 3

输出样例:

404

代码:
#include <iostream>
#include <map>
#include <cmath>
#include <cstdio>
#include <algorithm>
using namespace std;
int f[100000];
int n,k,d;
double z,r,sum = 0;
int a[100000],b[100000],ans = 0;
double discount[100000] = ;
void init(int n)
{
    for(int i = 1;i < n;i ++)
    {
        f[i] = i;
        discount[i] = 1;
    }
}
int getf(int k)
{
    if(k != f[k])
    {
        discount[d] *= discount[f[k]];
        f[k] = getf(f[k]);
    }
    return f[k];
}
int main()
{
    scanf("%d %lf %lf",&n,&z,&r);
    init(n);
    r = (100 - r) / 100;
    for(int i = 0;i < n;i ++)
    {
        scanf("%d",&k);
        if(k)
        {
            while(k --)
            {
                scanf("%d",&d);
                f[d] = i;
                discount[d] = r;
                getf(d);
            }
        }
        else
        {
            scanf("%d",&d);
            a[ans] = i;
            b[ans ++] = d;
        }
    }
    for(int i = 0;i < ans;i ++)
    {
        d = a[i];
        getf(d);
        sum += b[i] * z * discount[d];
    }
    cout<<(int)sum;
}
时间: 2024-10-26 18:36:22

L2-020. 功夫传人的相关文章

PAT L2-020 功夫传人

https://pintia.cn/problem-sets/994805046380707840/problems/994805059118809088 一门武功能否传承久远并被发扬光大,是要看缘分的.一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹.挖到了特别的秘笈),会将功夫的威力一下子放大N倍 —— 我们称这种弟子为“得道者”. 这里我们来考察某一位祖师爷门下的徒子徒孙家谱:假设家谱中的每个

pta l2-20(功夫传人)

题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805059118809088 题意:给定n个人,编号0-n-1,0为祖先,每个人有一个师傅,每次从师傅传功夫到徒弟时,功力值会削弱r,但可能会出现得道者,功力翻n倍,计算所有得道者功力值之和. 思路:因为计算功力值时要从祖先开始逐渐向下计算,所以我们需要存储每个人的徒弟,然后从上向下遍历即可,我这里用的是邻接表实现的,定义maxn个表头结点head,head[i

天梯赛练习(一)

L2-017. 人以群分 题意: 给定n个正整数,  然后分成规模相差尽可能接近的两类, 这两类之和相差要尽可能大 分析: 直接排序, 然后分成两部分即可 1 #include <bits/stdc++.h> 2 using namespace std; 3 int a[123456]; 4 int sum(int l , int r){ 5 int ans = 0; 6 for(int i = l; i <= r; i++) ans += a[i]; 7 return ans; 8 }

签证-L1/L2

http://blog.sina.com.cn/s/blog_7664b7f70102uweb.html 14年4月我接到公司通知,要从MICROSTRATEGY中国研发中心内部transfer到美国总部,于是大查开启了美国小生活. 一切从准备签证开始. 我申请的是L1签证.同样是工作,如果是直接拿到美国公司offer,一般是要申请H1签证的.就工作者本身来说,L1还是H1其实区别不大,但是对于配偶来说就大不一样了,L1的配偶拿L2签证可以申请上学,也可以申请工作许可(EAD):H1的配偶可以申

螳螂拳传人尹广福老先生介绍

螳螂拳及传人尹老师介绍 螳螂拳流传近四百年,是武术百花园中一枝奇葩,隶属于象形拳术,其仿螳螂之勇,猿猴之灵,特点突异,功法卓著,在技击和推手中更是彰显异采,别树一帜,同时也是健身祛病的良好方式之一,广泛受到人们的推崇和练习. 螳螂门推手传人尹广福先生,与祖国同岁,祖籍北京,古都人文汇粹,名家辈出,武术高手遍布各大公园. 尹广福老先生,目前是北京七星螳螂拳推手研究协会会长.国际功夫联合会推手专业委员会副主任.蓟门烟树功夫推手训练中心主任.北京青朴武学总顾问. 1969年在陕北坚持练习: 2016年

正则化方法:L1和L2 regularization、数据集扩增、dropout

本文是<Neural networks and deep learning>概览 中第三章的一部分,讲机器学习/深度学习算法中常用的正则化方法.(本文会不断补充) 正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合).其直观的表现如下图所示,随着训练过程,网络在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大--因为训练出来的网络过拟合了训练集,对训练集外的数据却不work

020# Adempiere的会计功能模组(一)

在Adempiere系统中会计和生产是它的核心部分,其中会计贯彻了整个ERP系统,构建起环环相扣.处处相连的商业管理模型.将系统的各个功能模组诸如:业务伙伴.系统银行账户.现金账户.物料产品价格.工程项目.进销存管理.生产管理等等错综复杂的紧密联系在一起,最后进入系统总账. 一.Adempiere系统所走的会计规则是"国际会计规则(GAAP)",国际会计规则标准编码如下: 二.AD系统依照国际会计编码设置会计科目分类(会计元素),资产1.负债2.权益3.收入4..... 1.资产科目编

诗外功夫

诗外功夫 宋代大诗人陆游之子向其请教学诗之道.陆游答:“汝果欲学诗?功夫在诗外”.这个故事被后人引用了近千年.全面准确地理解陆游的原意,应该说,陆游并不否定“诗内功夫”的重要性.但就“诗内功夫”与“诗外功夫”而言,谁更为重要?毫无疑问,是“诗外功夫”更为重要. 所谓“诗内功夫”,是关于诗的一些基本规律.常识及作诗的基本技巧.比如旧体诗,分律诗.古风……在律诗内,又分五律.七律.排律.绝句等等.每一类诗体都有不同的要求.特殊的规律和特殊的技巧.不掌握这些,显然就不可能作诗.但仅仅掌握这些,并不能保

机器学习中的范数规则化之(一)L0、L1与L2范数

机器学习中的范数规则化之(一)L0.L1与L2范数 [email protected] http://blog.csdn.net/zouxy09 转自:http://blog.csdn.net/zouxy09/article/details/24971995 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大,为了不吓到大家,我将这个五个部分分成两篇博文.知识有限,以下都是我一