【暑期多校联萌
来源:互联网 发布:空号检测软件 编辑:程序博客网 时间:2024/06/17 06:25
点击打开链接
QAQ & 君临天下 || 天行九歌
时间限制: 1 Sec 内存限制: 128 MB提交: 730 解决: 222
题目描述
QAQ~生活之余喜欢看一些动漫,说到国产动漫,QAQ 最喜欢的就属玄机了,玄机出品的动漫都很赞的说,君临天下 和 天行九歌是 QAQ 最喜欢的两部动漫了,每次看完 QAQ 对玄机的敬佩值都会分别增加 2
与 1
,QAQ 记录了自己每天看的动漫名称 由 A ~ Z
26个字母代替,J
:代表 君临天下,T
代表 : 天行九歌。
有一天,ORZ 突发奇想想帮 QAQ 测试一下 L ~ R
天里 QAQ 对玄机的敬佩值增加了多少,看 QAQ 能否清楚记得?
问题来了 ORZ 怎么知道 QAQ 回答的对错呢 ?所以 ORZ 想请你帮忙算出 L ~ R
天里 QAQ 对玄机的敬佩值增加的正确答案。
输入
第一行一个 T
( $1 \leq T \leq 10$)代表有 T
组测试数据
第二行两个数 n
,m
($1 \leq n,m \leq 10^5$),分别代表看了 n
天动漫,和 m
次查询
接下来 n
行一个 A ~ Z
的字母,表示第 i
天看的动漫名称
接下来 m
行,每行两个数 L
,R
($1 \leq L \leq R \leq n$)
输出
对于每次查询,输出 L~R
天里,QAQ对玄机的敬佩值增加了多少
样例输入
13 3JAT1 11 22 3
样例输出
221
// 前缀和的问题: 1 ~ i 的和 存到sum[i] 中 , 区间(l,r)的和就是 sum = sum[r] - sum[l-1];
//代码如下:
#include <cstdio>const int maxn = 1e5 + 10;char a[maxn];int main(){int t;scanf ("%d",&t);while (t--) { int n,m; scanf ("%d%d",&n,&m); getchar(); int dp[maxn]; dp[0] = 0; for (int i = 1 ; i <= n ; i++) { scanf ("%c%*c",&a[i]); //%*c 吃掉回车符,ps 一种小技巧 直接当成字符串输入,容错性高而且不必考虑是空格还是\n的问题。 if (a[i] == 'J') dp[i] = dp[i-1] + 2; if (a[i] == 'T') dp[i] = dp[i-1] + 1; if (a[i] != 'T' &&a[i] != 'J') //虽然与要的字母不同,但是要更新dp[i] 的值。 dp[i] = dp[i-1]; } int l,r; for (int i = 0 ; i < m ; i++) { scanf ("%d%d",&l,&r); int ans = 0; ans = dp[r] - dp[l-1]; printf ("%d\n",ans); } }return 0;}
阅读全文
0 0
- 【暑期多校联萌
- 【暑期多校联萌
- 【暑期多校联萌
- 【暑期多校联萌
- 暑期计划!
- 暑期学习计划
- 暑期总结
- 暑期计划
- 暑期目标
- 暑期计划
- 暑期书单
- 暑期总结
- 暑期规划
- 暑期任务
- 暑期总结
- 暑期小结
- 暑期总结
- 暑期小结
- Ananagrams
- SpringBoot_Junit
- JVM结构及GC工作机制
- springmvc的controllerAPP接口JSON返回值乱码问题(get方法)
- 一步一步学Vue(五)
- 【暑期多校联萌
- 数学模型--现代优化算法(启发式算法)
- 状压DP——2800 送外卖
- 8月11日小结
- idea+maven+Tomcat新建部署web项目
- C语言--二维数组的使用
- hpuoj【1412】QAQ & 君临天下 || 天行九歌 【区间】
- 初识Oracle数据库
- HDU 1950 Bridging signals