description:

  • 给定一个长度为 nnn 小写字母字符串 sss。(这里默认下标从 111 开始)
  • 给定一个长度为 mmm 的数列 pip_ipi​。
  • 对于每一个 pip_ipi​,表示你要统计 s1∼spis_1\sim s_{p_i}s1​∼spi​​所对应的字母各一次。
  • 最终,你还要统计整个字符串的字母各一次。
  • 你需要求出 262626 个小写字母中每个字母被统计过的次数。
  • 多组数据,数据组数不超过 10410^4104,2≤n≤2×1052\le n\le 2\times 10^52≤n≤2×105,1≤m≤2×1051\le m\le 2\times 10^51≤m≤2×105。
  • translate by @ShineEternal。

solution:

数据范围比较大,我们没法一一枚举,于是可以使用前缀和。

用前缀和将每一个位置的各个字母的出现次数进行提前统计,遇到 pip_ipi​ 的时候 O(1)O(1)O(1) 查询就行了。

code:

#include<cstdio>
#include<algorithm>
using namespace std;
int p[200005];
char s[200005];
int mp[200005][30];
int Mp[30];
int main()
{int T;scanf("%d",&T);while(T--){for(int i=1;i<=30;i++)Mp[i]=0;int n,m;scanf("%d%d",&n,&m);scanf("%s",s);//printf("%s\n",s);for(int i=1;i<=m;i++){scanf("%d",&p[i]);}p[m+1]=n;m++;for(int i=1;i<=26;i++)mp[0][i]=0;mp[0][s[0]-'a'+1]++;for(int i=1;i<n;i++){for(int j=1;j<=26;j++)mp[i][j]=mp[i-1][j];mp[i][s[i]-'a'+1]++;}for(int i=1;i<=m;i++){for(int j=1;j<=26;j++){Mp[j]+=mp[p[i]-1][j];}}for(int i=1;i<=26;i++){printf("%d ",Mp[i]);}printf("\n");}return 0;
}

CF1311C. Perform the Combo题解相关推荐

  1. CF1311C Perform the Combo 题解

    题目:Link 暴力 - 前缀和 一道比较有趣的前缀和练习题 可以看出,题目有多次求 1∼pi1\sim p_i1∼pi​ 上每个字母的数量.我们可以很轻松的用前缀和解决,只是需要多开一维记录字母 设 ...

  2. Perform the Combo CodeForces - 1311C(字符串反转+树状数组)

    You want to perform the combo on your opponent in one popular fighting game. The combo is the string ...

  3. codeforce 1311 C. Perform the Combo 前缀和

    You want to perform the combo on your opponent in one popular fighting game. The combo is the string ...

  4. Codeforces 1311C Perform the Combo

    这里我使用的是动态规划的方法,先对一串字符串计算它的前缀和. 核心代码 for(int i=0;i<len;i++) {if (i>0)for(int q=0;q<26;q++){ ...

  5. 集训队每周一赛2020-03-06(思维+暴力)

    第二次周赛 A 我是A题 CodeForces 1305 题解 B 我是B题 计蒜客 A1530 题解 C 我是C题 HDU 2673 题解 D 我是D题 CodeForces 304B 题解 E 我 ...

  6. The 10th Zhejiang Provincial Collegiate Programming Contest 蒻菜的水题题解。

    http://acm.zju.edu.cn/onlinejudge/contestInfo.do?contestId=347 今天参加了今年的浙江省赛网络同步赛(?),被虐得很惨... 做了五道水题只 ...

  7. 洛谷 CF7E Defining Macros 题解

    题意翻译 题目给了一系列C + +的宏定义,问你一个表达式是否是"安全"的.安全的定义是,展开后的表达式中,所有的宏在计算过程中都被作为一个整体运算. 如#define sumx十 ...

  8. AtCoder题解 —— AtCoder Grand Contest 050 —— B - Three Coins —— 动态规划

    题目相关 题目链接 AtCoder Grand Contest 050 B 题,https://atcoder.jp/contests/agc050/tasks/agc050_b. Problem S ...

  9. #2020.02.05训练题解#最小生成树入门(F题)

    题源CF-1108 CF-1108-MST Unification Description You are given an undirected weighted connected graph w ...

最新文章

  1. 在微服务架构中做机器学习,真的太难了
  2. win7 mysql8.0.11安装教程_Win7系统安装 MySQL 8.0.11
  3. java cron表达式_Java 程序员都应该去使用一下这款强大的国产工具类库
  4. 56.ISE综合,在chipscope信号列表看不到
  5. 数据结构与算法(Python)– 回溯法(Backtracking algorithm)
  6. mysql 过滤相同数据库_MySQL数据库查询中的重复记录过滤
  7. 作者:陈钧,男,中国国防科技信息中心高级工程师、研究室主任。
  8. Nginx支持WebSocket反向代理-学习小结
  9. 在Visual Studio Code运行单个js文件需要用到插件
  10. Python:PyCharm提示Local variable ‘x‘ value is not used
  11. mysql的字段长度_【mysql】字段类型和长度的解释
  12. Linux 下的这些高效指令,是你快速入门运维的神器
  13. LCD1602芯片的使用——简单易懂
  14. 很舒服的几句话,心静,人就不会累了
  15. SAP MM 采购信息记录中价格单位转换因子的修改
  16. java获得指定时间的前几天或后几天是哪一天
  17. 2020年Web前端学习网站导航
  18. 若依前端分离框架-修改关于若依文字的网页标题
  19. 普通打印机如何打印条形码
  20. Python与人工神经网络(2)——使用神经网络识别手写图像

热门文章

  1. mysql导入.dmf文件_DMF文件扩展名 - 什么是.dmf以及如何打开? - ReviverSoft
  2. vue2组件系列第二节:按钮
  3. SpringCloudAlibaba学习-加入Dubbo
  4. 操作系统上的堆栈——极品解释
  5. excel中获取汉字的首字母
  6. Java、JSP校园二手商品交易平台的设计与实现
  7. grumble.js-非常酷的气泡提示插件
  8. 一键ghost v11 build 070707 优盘版 官方
  9. python从0到100_python 100_python100天从新手到大师_pythong0~100的质数 - 云+社区 - 腾讯云...
  10. python面向对象(乐高编程语言)