哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)F - 苦逼的单身狗
题目描述
双11又到了,小Z依然只是一只单身狗,对此他是如此的苦恼又无可奈何。
为了在这一天脱单小Z决定向女神表白,但性格腼腆的小Z决定隐晦一点,截取一段包含'L'、'O'、'V'、'E'的英文。(顺序不限)
小Z想起之前小D送给他一本英文书,决定在这里面截取一段话,小Z发现有好多种方案来截取这段话。
你能知道小Z能有多少种方案截取这段话么?
为了简化问题,英文文本讲不会出现空格、换行、标点符号及只有大写的情况。
输入描述:
本题有T组数据。对于每组数据只有一行文本。1≤T≤201≤文本长度≤100000
输出描述:
输出结果,并换行。
输入
3 ILOVEACM LOVELOVE ALBECVOD
输出
8 15 4
题解
$dp$,枚举。
枚举子串的起点,寻找最近的符合要求的终点,后面的都满足。
寻找最近的终点,可以二分,也可以$dp$预处理。
#include <bits/stdc++.h>
using namespace std;const int maxn = 1e5 + 10;
int T;
char s[maxn];
int f[maxn][4];
char t[5] = {'L', 'O', 'V', 'E'};int main() {scanf("%d", &T);while(T --) {scanf("%s", s);int len = strlen(s);for(int i = 0; i < len; i ++) {for(int j = 0; j < 4; j ++) {f[i][j] = len;}}int pos;for(int j = 0; j < 4; j ++) {pos = len;for(int i = len - 1; i >= 0; i --) {if(s[i] == t[j]) pos = i;f[i][j] = pos;}}long long ans = 0;for(int i = 0; i < len; i ++) {int p = 0;for(int j = 0; j < 4; j ++) {p = max(p, f[i][j]);}ans = ans + len - p;}printf("%lld\n", ans);}return 0;
}
转载于:https://www.cnblogs.com/zufezzt/p/8086316.html
哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)F - 苦逼的单身狗相关推荐
- 哈尔滨理工大学第七届程序设计竞赛初赛 题集
1. 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 这是mengxiang000和Tabri ...
- 哈尔滨理工大学第七届程序设计竞赛初赛(低年级组)
水题就不做讲解了~~~~~: A 蓝廋.香菇 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 ...
- 哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)题解
比赛链接:https://www.nowcoder.com/acm/contest/27#question A: 小Z的体型实在是太胖了,每次和小D一起出门都跟不上小D的脚步,这让小Z很气馁,于是小Z ...
- 哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)F 苦逼的单身狗【DP】
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 双11又到了,小Z依然只是一只单身狗,对此他是 ...
- 【哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)】 A B C D F G H I
A 凌波微步 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 小Z的体型实在是太胖了,每次和小 ...
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)G - 幼儿园战争...
题目描述 幼儿园的孩子们正在做游戏,每个人都有自己的帮派,帮派之间打架,然后赢者吞并弱者扩大自己的势力.最开始每个孩子的帮派中只有自己,然后接下来有会有两个人打架,这两个人会集结自己所属的势力开始打架 ...
- 哈尔滨理工大学第七届程序设计竞赛决赛(现场赛-高年级组)B-幸运大奖
链接: https://www.nowcoder.com/acm/contest/50/B 来源:牛客网 题目描述 tabris实在是太穷了,为了发财,tabris去买了一张彩票,幸运地中了特别奖. ...
- 科林明伦杯”哈尔滨理工大学第十届程序设计竞赛B(减成1)
科林明伦杯"哈尔滨理工大学第十届程序设计竞赛 存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多少次操作,可以让所有数都变成1. 数据保证一定有解. 输入描述: 输入t, ...
- “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解
"科林明伦杯"哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解 萌新又来写题解啦 原题链接 B 减成一 题意:存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多 ...
最新文章
- OpenCV中图像Mat,二维指针和CxImage类之间的转换
- Cer Crt Pem Pfx 证书格式转换
- UDP转TCP隧道工具udptunnel
- c调用python打包_如何将C++的API封装成python可调用形式?
- PHP反序列化漏洞总结
- Android 极广推送接入
- 交换机应用之端口模式(access、trunk和hybird)、是否标记(tag、untag)、端口缺省vlan(pvid、native id)...
- android JNI(转)
- 交叉编译Python-2.7.13到ARM(aarch32)平台
- hdu 1542 Atlantis (线段树+扫描线)
- 阿里云泄露 40 家名企源代码!
- springboot的三种启动方式
- Android 里的adb命令
- 2d模型文件_Supergiant美术师:如何将2D美术做成3D游戏模型?
- 【蓝桥杯省赛学习题Java】座次问题
- 使用matplotlib绘制xkcd动漫风格的图表(解决中文字体问题)
- echarts使用e_macarons方法
- Chrome 实用渗透测试插件合集
- c语言欺凌,《中国校园欺凌调查报告》发布 语言欺凌占主导
- 做网站SEO优化每天都做什么