CF814C An impassioned circulation of affection
2024-08-23 03:55:21
思路:
对于题目中的一个查询(m, c),枚举子区间[l, r](0 <= l <= r < n),若该区间满足其中的非c字符个数x不超过m,则可以将其合法转换为一个长度为r-l+1的全c子序列,可以使用动态规划以O(n2)的复杂度计算,然而O(n2q)的复杂度还是太高了。于是先离线把26n中情况都计算出来,再打表即可。复杂度O(26n2+q)。
实现:
#include <iostream>
#include <cstdio>
using namespace std; const int MAXN = ; int n, q, m, ans[][MAXN];
string s;
char c; int main()
{
cin >> n >> s;
for (int k = ; k < ; k++)
{
char tmp = 'a' + k;
for (int i = ; i < n; i++)
{
int cnt = ;
for (int j = i; j < n; j++)
{
if (s[j] != tmp) cnt++;
ans[k][cnt] = max(ans[k][cnt], j - i + );
}
}
for (int i = ; i < MAXN; i++)
ans[k][i] = max(ans[k][i], ans[k][i - ]);
}
cin >> q;
for (int i = ; i < q; i++)
{
scanf("%d %c", &m, &c);
printf("%d\n", ans[c - 'a'][m]);
}
}
最新文章
- C#开发微信门户及应用(28)--微信“摇一摇&#183;周边”功能的使用和接口的实现
- 最简单的JS图片轮播
- .NET中的GDI+
- JS_ECMA基本语法中的几种封装的小函数-2
- vc 实现打印功能
- ZOJ 2971 Give Me the Number;ZOJ 2311 Inglish-Number Translator (字符处理,防空行,strstr)
- CSS之剪切横幅
- There is a legend about a bird
- 一个简单的C#获取Session、设置Session类文件
- c语言之函数指针
- 2014 HDU多校弟八场H题 【找规律把】
- Less和Sass的使用
- 【css】盒子模型 之 弹性盒模型
- 给Linux RedHat7 设置启动终端的快捷键
- Model和ModelAndView
- HttpServletRequest 接口、HttpServletResponse 接口、请求转发与重定向
- 华为交换机以 LACP 模式实现链路聚合
- nodejs 利用zip-local模块压缩文件夹
- Spark中groupByKey、reduceByKey与sortByKey
- win7启动老是自动进入Boot Menu无法进入系统
热门文章
- MyBatis实体属性与表的字段不对应的解决方案
- SQL Server中迁移数据的几种方法
- ETL全量多表同步简述
- WinExec可能会引起消息重入
- golang 跨平台编译——go 在windows上编译Linux平台的程序(Cross Compilation from Windows to Linux/Ubuntu)
- JAVA 流程控制之选择语句
- 百度编辑器ueditor给上传的图片加入水印
- HDU 4923 Room and Moor(瞎搞题)
- S5P4418裸机开发系列教程--源代码下载
- Lexer and parser generators (ocamllex, ocamlyacc)