upc PinkRabbit写情书(枚举)

本文介绍了一个使用数学方法计算情书浪漫程度的问题,通过枚举情书中的词汇并匹配其浪漫值,最终得出整体浪漫度。文章提供了详细的算法思路及C++实现代码。

时间限制: 1 Sec 内存限制: 128 MB

题目描述

PinkRabbit在决定好表白的日期之后,决定写一封情书给他的妹子。PinkRabbit在阅读了「句法结构」「普通语言学教程」等诸多形式语言学著作之后,用数学方法得到了一些成果。他将n个情书中的常见词汇整理成一张「情书词汇浪漫度归纳表」,并且计算出了每个这些词汇的浪漫度ri。一封情书有它本身的浪漫程度。定义情书的浪漫程度为R,每个情书常见词汇在这封情书中出现的次数为ti,那么一封情书的浪漫程度能被如下的一个公式定义:
在这里插入图片描述
现在PinkRabbit请才华横溢的Marser代笔写了一封情书,并且打算用「情书词汇归纳表」来计算这封情书的浪漫程度并且作更深入的研究。由于他要准备表白成功或者失败之后的相关事项,没空计算这封情书的浪漫程度,所以请你帮他设计程序计算这封情书的浪漫程度。

输入

首先是一个正整数n,表示PinkRabbit\总共研究出了n种「情书常用词汇」。

接下来是n行,从第二行到第n+1行,第i行有一个字符串Si和一个正整数ri,分别表示第i个情书常用词汇和这个词汇的浪漫程度。其中S仅包括大写字母、小写字母、逗号,、句号.、下划线_(表示空格)、冒号:、分号;、方括号[]、圆括号()、双引号"、问号?、感叹号!和引号’。对于不同的i,Si可能相同。此时这个词汇总的浪漫程度为所有对应的ri之和。

在第n+2行有一个字符串T,即Marser帮PinkRabbit\m代笔的情书。情书中可能含有的词汇与情书常用词汇相同。

输出

输出一个正整数R,表示这封情书的浪漫程度。

样例输入
4
reeDeulB 5
evol 10
tibbaRKinP 1
hcum_yrev 1
hcum_yrev,hcum_yrev_reeDeulB_sevol_tibbaRkinP
样例输出
17
提示

在这里插入图片描述

思路

枚举情书的字串,如果这个字串是 “ 情书词汇 ” ,就加上它的浪漫值。
(我一开始是以为这个题是查找字串出现的次数,结果一直WA,后来才晓得,原来这个题是枚举字串,难受了)
代码:

# B3798 [NICA #1] 梦熊培养计划 ## 题目描述 梦熊信奥一直致力于培养高质量的信奥人才,这意味着需要有对学员学习状态充足的关照,特别是成绩起伏不定的学员。 现在某个班级一共有 $n$ 个学员,他们参与了 $m$ 次考试。为了衡量一个学员的成绩的波动情况,我们采用标准差这一概念。标准差的计算公式如下: $$\sigma=\sqrt{\dfrac{\sum(X-\mu)^2}{N}}$$ 其中,$X$ 指的是这个人每一次考试的成绩,$\mu$ 指的是这个人所有考试成绩的平均值,$N$ 指的是这个人参与的考试次数,$\sum$ 符号表示将所有的结果累加求和。标准差越小,说明成绩越稳定。 例如说如果一个学员的三次考试分数分别为 $40,50,60$,那么其成绩的标准差为 $\sqrt{\dfrac{(40-50)^2+(50-50)^2+(60-50)^2}{3}}=\dfrac{10\sqrt{6}}{3} \approx 8.16$。 现在你已知每个学员的名字和他们每一次考试的成绩,请你将他们根据成绩的波动情况从大到小进行排序。**你只需输出成绩波动最不稳的前 $20$ 人(不满 $20$ 人则全部输出)。** ## 输入格式 第一行输入两个正整数 $n,m$,表示学员人数和参与考试次数。 第二行开始,往下 $n$ 行。对于第 $i$ 行: - 每行第一个为字符串,表示第 $i$ 个学员的姓名; - 接着读入 $m$ 个整数,以空格隔开,表示第 $i$ 个学员每次考试的成绩 $a_{i,j}$。 ## 输出格式 输出 $\min(n,20)$ 行,按照他们成绩的波动情况由大到小输出每个学员的姓名。如果有多个人成绩波动情况相同,则根据他们姓名的字典序从小到大输出。 ## 输入输出样例 #1 ### 输入 #1 ``` 5 3 kkksc03 90 80 70 chenzhe 40 50 60 pinkrabbit 11 45 14 xht37 0 0 0 yakumoran 100 100 100 ``` ### 输出 #1 ``` pinkrabbit chenzhe kkksc03 xht37 yakumoran ``` ## 说明/提示 **【样例解释】** xht37 与 yakumoran 的成绩的标准差为 $0$,kkksc03 与 chenzhe 的成绩的标准差约为 $8.16497$,而 pinkrabbit 的成绩的标准差约为 $15.3695$。 数据保证,$1 \leq n \leq 100000$,$1 \leq m \leq 20$,学员姓名长度不超过 $10$ 且只由大小字母和数字构成。$0 \leq a_{i,j} \leq 100$。 **【提示】** 您不必过多关心浮点误差。
最新发布
11-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值