时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
双11又到了,小Z依然只是一只单身狗,对此他是如此的苦恼又无可奈何。
为了在这一天脱单小Z决定向女神表白,但性格腼腆的小Z决定隐晦一点,截取一段包含’L’、’O’、’V’、’E’的英文。(顺序不限)
小Z想起之前小D送给他一本英文书,决定在这里面截取一段话,小Z发现有好多种方案来截取这段话。
你能知道小Z能有多少种方案截取这段话么?
为了简化问题,英文文本讲不会出现空格、换行、标点符号及只有大写的情况。
输入描述:
本题有T组数据。
对于每组数据只有一行文本。
1≤T≤20
1≤文本长度≤100000
输出描述:
输出结果,并换行。
示例1
输入
3
ILOVEACM
LOVELOVE
ALBECVOD
输出
8
15
4

分析:一开始想存一下四个字母出现的位置,然后每次二分查找最近的点进行累加O(nlogn)。

从后向前递推,也可以O(n)通过

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 1e5 + 10;
char str[maxn];
int T;
int main()
{scanf("%d", &T);while (T--) {scanf("%s", str);long long int ans = 0;int len = strlen(str);int L = -1, O = -1, V = -1, E = -1;for (int i = len - 1; i >= 0; i--) {if (str[i] == 'L') L = i;else if (str[i] == 'O') O = i;else if (str[i] == 'V') V = i;else if (str[i] == 'E') E = i;if (L != -1 && V != -1 && O != -1 && E != -1) {int tmp = max(max(L, E), max(O, V));ans += 1ll * (len - tmp);}}printf("%lld\n", ans);}return 0;
}

哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)F 苦逼的单身狗【DP】相关推荐

  1. 哈尔滨理工大学第七届程序设计竞赛初赛 题集

    1. 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 这是mengxiang000和Tabri ...

  2. 哈尔滨理工大学第七届程序设计竞赛初赛(低年级组)

    水题就不做讲解了~~~~~: A 蓝廋.香菇 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 ...

  3. 哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)题解

    比赛链接:https://www.nowcoder.com/acm/contest/27#question A: 小Z的体型实在是太胖了,每次和小D一起出门都跟不上小D的脚步,这让小Z很气馁,于是小Z ...

  4. 哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)F - 苦逼的单身狗

    题目描述 双11又到了,小Z依然只是一只单身狗,对此他是如此的苦恼又无可奈何. 为了在这一天脱单小Z决定向女神表白,但性格腼腆的小Z决定隐晦一点,截取一段包含'L'.'O'.'V'.'E'的英文.(顺 ...

  5. 【哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)】 A B C D F G H I

    A 凌波微步 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 小Z的体型实在是太胖了,每次和小 ...

  6. 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)G - 幼儿园战争...

    题目描述 幼儿园的孩子们正在做游戏,每个人都有自己的帮派,帮派之间打架,然后赢者吞并弱者扩大自己的势力.最开始每个孩子的帮派中只有自己,然后接下来有会有两个人打架,这两个人会集结自己所属的势力开始打架 ...

  7. 哈尔滨理工大学第七届程序设计竞赛决赛(现场赛-高年级组)B-幸运大奖

    链接: https://www.nowcoder.com/acm/contest/50/B 来源:牛客网 题目描述 tabris实在是太穷了,为了发财,tabris去买了一张彩票,幸运地中了特别奖. ...

  8. 科林明伦杯”哈尔滨理工大学第十届程序设计竞赛B(减成1)

    科林明伦杯"哈尔滨理工大学第十届程序设计竞赛 存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多少次操作,可以让所有数都变成1. 数据保证一定有解. 输入描述: 输入t, ...

  9. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解

    "科林明伦杯"哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解 萌新又来写题解啦 原题链接 B 减成一 题意:存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多 ...

最新文章

  1. 【怎样写代码】工厂三兄弟之抽象工厂模式(六):扩展案例II
  2. windows下命令行终端使用rz上传文件参数详解
  3. python 创建空文件的方法
  4. 民政部部长李纪恒:适龄人口生育意愿偏低,总和生育率破警戒线
  5. 算法训练 字符串编辑 java
  6. InputStream 、 InputStreamReader和BufferedReader
  7. 蚂蚁集团高级架构师郭援非:分布式数据库是金融机构数字化转型的最佳路径...
  8. 测试显示富士通UHF RFID亚麻标签可在1.5T及3T的MRI系统内使用
  9. 算法笔记之——快速幂
  10. select超过固定条数后出现滚动条_12万公里的路虎维修,两个小小的胶套损坏,导致两条后轮胎偏磨!...
  11. Java 异常 (Exception) 剖析 与 用户自定义异常
  12. Day 45 Ansible批量管理
  13. linux 内核代码怎么下载,centos的linux内核源码下载方法
  14. 汉诺塔递归算法python详细解析图_汉诺塔递归算法分析过程
  15. 非常有用的150个生活小常识
  16. Mac OS 开机密码重置
  17. keil中设置的flash(irom)的起始地址为0x08000000,这个0x08000000的意义------stm32地址映射图解析
  18. angular--安全导航操作符 ( ?. )、非空断言操作符(!) (实用)
  19. 输入框内只能输入数字,输入其他内容不显示
  20. SAP上云——助力制造业数字化转型

热门文章

  1. 【金融统计】R语言数据获取并计算收益
  2. C#宝石闪电战【高仿,推荐】
  3. 优酷播放器与layer弹出层(别的弹出层未测试)遮挡问题
  4. 计算机黑屏死机,电脑黑屏死机怎么解决(一键修复电脑黑屏死机的方式)
  5. 50段超实用CSS代码(1)
  6. python的turtle画小人_当一个学了20分钟python turtle 的人画滑稽会怎样
  7. node.js 简介之一
  8. 淘宝店铺被投诉怎么办?教你如何处理,你是否有这样的经历
  9. 【计算机毕业设计】垃圾分类系统
  10. PTA-MOOC《Python程序设计浙江大学》拼题A题目集第二章编程题