不怕噩梦

题面

蚊子最近经常做噩梦,然后就会被吓醒。这可不好。。

疯子一直在发愁,然后突然有一天,他发现蚊子其实就是害怕某些事。

如果那些事出现在她的梦里,就会害怕。

我们可以假定那个害怕的事其实是一个字符串。而她做的梦其实也是一个字符串。

她可以一个晚上一直做梦,所以梦这个字符串会很长,如果其中包含了她所害怕的事情,那么她这天晚上就会害怕。

当然一个害怕的事也可能在这天晚上被她梦到很多遍,当然每个晚上也可能有很多种害怕的事都被梦到。

每个害怕的事都有一定的权值。

而这天晚上如果梦到了某件事,那么这件事所产生的黑暗效果等于这件事的权值乘以这个害怕的事在梦字符串里的开始位置。

如果同样的事梦到了很多遍,那么就重复上面的操作很多遍。

当天晚上的黑暗效果总和等于当天所有害怕的事产生的黑暗效果累加到一起。

现在疯子想知道蚊子这些天来噩梦的黑暗效果总和是多少。

输入格式

第\(1\)行两个整数\(N,M\)代表一共有\(N\)天梦和\(M\)个害怕的事。

第\(2\)行到第\(M+1\)行。每行一个字符串\(t_i\),代表第\(i\)个害怕的事

第\(M+2\)行到第\(2M+2\)行。每行一个整数\(a_i\).代表第\(i\)个害怕的事权值

第\(2M+3\)行到第\(N+2M+3\)行。每行一个字符串\(s_i\),代表第\(i\)天的梦。

输出格式

$SUM $

\(SUM=N\)天里黑暗效果的总和。

我们保证每天的黑暗效果都小于\(\texttt{maxlongint}\);

样例

\(\texttt{input\#1}\)

2 2

abc

def

1

2

abcdef

defabc

\(\texttt{output\#1}\)

15

数据范围与提示

【样例解释】

\(1 * 1 + 2 * 4 + 1 * 4 + 2 * 1 = 15\)

对于数据的把握和时间复杂度的估计是成败的关键。

如果出现一个梦是:ab

而害怕的事有a,b,ab,那么a,b,ab都需要参与计算..

【数据范围】

对于$30 % $的数据

\(N,M \leqslant 50\)

对于所有的数据

\(N<=200.M<=200. length(s_i)<=200.length(t_i)<=200.a_i<=10.\)


题解

str1.find(str2,qwq)是从str1的qwq位置开始找str2找到的话返回str2在str1中的从qwq位置开始第一次出现的位置。模拟即可。


\(Code\)

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm> typedef long long ll;
ll ans,n,m;
std::string sss[201];
struct aaa {
std::string name;
ll w;
}a[201]; inline void read(ll &T) {
ll x=0;bool f=0;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=!f;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
T=f?-x:x;
} inline void calc(int a,int b) {
ans+=a*b;
} int main() {
read(n),read(m);
for(int i=1;i<=m;++i) {
std::cin>>a[i].name;
}
for(int i=1;i<=m;++i) {
read(a[i].w);
}
for(int i=1;i<=n;++i) {
std::cin>>sss[i];
}
for(int i=1;i<=n;++i) {
for(int j=1;j<=m;++j) {
int x=0;
while(1) {
x=sss[i].find(a[j].name,x);
if(x==-1) break;
else calc(x+1,a[j].w);
x++;
}
}
}
std::cout<<ans<<'\n';
return 0;
}

【CSP-S膜你考】不怕噩梦 (模拟)的更多相关文章

  1. 【CSP-S膜你考】即时战略(模拟)

    Problem B. 即时战略 (rts.c/cpp/pas) 注意 Input file: rts.in Output file: rts.out Time Limit : 2 seconds Me ...

  2. 【CSP-S膜你考】那23个路口

    那23个路口 题面 故事的起源不加赘述,那23个路口. 单刀直入,我直接说题的意思. 蚊子和疯子在做一件事,就是他们要在茫茫的大街上找一个出发点,然后从出发点开始,经过上下左右23次拐弯,到达一个他们 ...

  3. 【CSP-S膜你考】我们的可可西里

    我们的可可西里 题面 转眼到了2008年的6月9日,盼望已久的高考结束了.我们踏上了向西的旅程(本来是想写西去之路,可是考虑不太妥当).可可西里,多么诱人的名词,充满了奇幻的色彩和自然的淳朴.从可可西 ...

  4. 【初赛】CSP 2020 第一轮(初赛)模拟记录

    感觉初赛不过关,洛谷上找了一套没做过的来练习. 顺便写了详细的题解. 试题用时:1h 单项选择: 第 1 题 十进制数 114 的相反数的 8 位二进制补码是: A.10001110 B.100011 ...

  5. 【CSP-S膜你考】 A

    A 题面 对于给定的一个正整数n, 判断n是否能分成若干个正整数之和 (可以重复) , 其中每个正整数都能表示成两个质数乘积. 输入格式 第一行一个正整数 q,表示询问组数. 接下来 q 行,每行一个 ...

  6. 【CSP-S膜你考】最近公共祖先 (数学)

    Problem A. 最近公共祖先 (commonants.c/cpp/pas) 注意 Input file: commonants.in Output file: commonants.out Ti ...

  7. 2020 CSP&NOIP 游记

    CSP初赛 CSP初赛 Day -1 早上打了模拟赛,T2寒假正好做过,然而还是还是被踩Orz,郑外NB!.中午出校吃了大盘鸡和拉面,还带回来了三瓶可乐. 初赛知识点看了两页不(看)想(不)看(懂)了 ...

  8. csp每日习题

    欢迎加入:qq群号:1054587486 做题链接:https://csp.ccf.org.cn/csp/index.action?_access_code=1584494752035 点击模拟考试进 ...

  9. CSP-S 2019 游记

    目录 CSP-S 2019 游记 DAY -1 Day 0 Day 1 Day 2 后记 CSP-S 2019 游记 机房段子: zr(老师):yyx我看你最近不错哦(此人外号拳皇 yyx:运气好运气 ...

随机推荐

  1. Prometheus 安装Grafana与Prometheus集成

    Prometheus 安装Grafana与Prometheus集成 Grafana是一个开源的度量分析和可视化系统. 下载地址:https://grafana.com/grafana/download ...

  2. Web应急:网站被批量挂黑页

    作为一个网站管理员,你采用开源CMS做网站,比如dedecms,但是有一天,你忽然发现不知何时,网站的友情链接模块被挂大量垃圾链接,网站出现了很多不该有的目录,里面全是博彩相关的网页.而且,攻击者在挂 ...

  3. WPF 精修篇 长时间线程加取消功能

    原文:WPF 精修篇 长时间线程加取消功能 <Grid> <Grid.RowDefinitions> <RowDefinition Height="11*&qu ...

  4. mosquitto 常用命令

    原文:https://www.cnblogs.com/smartlife/articles/10182136.html 常用命令 订阅主题 mosquitto_sub -h 192.168.0.1 - ...

  5. .net mvc 几种跨域获取数据方案

    方案一: 在web.conflg配置文件system.webServer节点中添加以下节点配置 <!--允许 "所有网站" 跨域访问写法:--><httpProt ...

  6. BAT: 获取时间有空格问题

    最近在项目上需要把文件定时备份,用BAT文件来自动生成文件夹名,精确到秒: bat脚本时间设定如下: pushd E:\Test set T=%date:~0,10%-%time:~0,2%%time ...

  7. idea2019注册码

    都9012年了,怎么还能忍受用低版本的编辑器呢, IntelliJ IDEA 2019破解教程拿走不谢 下载工具 Mac版idea下载链接: 链接:https://pan.baidu.com/s/1m ...

  8. Kubernetes是什么东西?

    Kubernetes一词来源于希腊语,翻译来的意思就是舵手或者船长的意思,而它的logo也是很符合这个词的 至于k8s则是通过将ubernetes这8个字母替换为8而导出的缩写 Kubernetes是 ...

  9. Object.assign的使用

    语法: Object.assign(target, ...sources)//target目标对象,sources源对象,返回值目标对象 使用说明: 如果目标对象中的属性具有相同的键,则属性将被源对象 ...

  10. 浓缩版java8新特性

    目录 一.Lambda 1.定义/设计原因 2.结构 3.规则 4.使用 二.函数式接口 1.定义 2.设计原因 3.使用 三.方法引用 1.定义/设计原因 2.使用 四.接口的默认方法 1.定义 2 ...