\(\text{Solution}\)

\(dp\) 翻折就只需预处理回文中心

\(Manacher\) 预处理即可

\(Code\)

#include<cstdio>
#include<iostream>
#define LL long long
using namespace std; const int N = 1e6 + 5;
int n, p[N << 1];
LL f[N << 1], cost[30], C;
char s[N], str[N << 1]; inline void Manacher()
{
int len = n;
str[0] = '@', str[1] = '#', n = 2;
for(register int i = 1; i <= len; i++) str[n++] = s[i], str[n++] = '#';
str[n] = '$';
for(register int i = 1, mx = 0, id = 0; i <= n; i++)
{
p[i] = (i < mx ? min(p[id * 2 - i], mx - i) : 1);
while (str[i + p[i]] == str[i - p[i]]) ++p[i];
if (i + p[i] > mx) mx = i + p[i], id = i;
}
} LL INF = 0x3f3f3f3f3f3f3f3f;
LL tag[N << 3];
#define ls (p << 1)
#define rs (ls | 1)
#define mid ((l + r) >> 1)
void build(int p, int l, int r)
{
tag[p] = INF;
if (l == r) return;
build(ls, l, mid), build(rs, mid + 1, r);
}
void update(int p, int l, int r, int x, int y, LL v)
{
if (x <= l && r <= y) return void(tag[p] = min(tag[p], v));
if (x <= mid) update(ls, l, mid, x, y, v);
if (y > mid) update(rs, mid + 1, r, x, y, v);
}
LL query(int p, int l, int r, int x)
{
LL ret = tag[p];
if (l == r) return ret;
if (x <= mid) ret = min(ret, query(ls, l, mid, x));
else ret = min(ret, query(rs, mid + 1, r, x));
return ret;
} int main()
{
freopen("copy.in", "r", stdin);
freopen("copy.out", "w", stdout);
scanf("%d%lld", &n, &C);
for(register int i = 0; i < 26; i++) scanf("%lld", &cost[i]);
scanf("%s", s + 1), Manacher();
build(1, 1, n);
for(register int i = 1; i <= n; i++)
{
if (str[i] == '#' || str[i] == '$') f[i] = f[i - 1];
else f[i] = f[i - 1] + cost[str[i] - 'a'];
f[i] = min(f[i], query(1, 1, n, i) + C);
update(1, 1, n, i + 1, min(i + p[i] - 1, n), f[i]);
}
printf("%lld\n", f[n]);
}

【GDKOI 2021提高组DAY2】抄写的更多相关文章

  1. 18/9/16牛客网提高组Day2

    牛客网提高组Day2 T1 方差 第一眼看就知道要打暴力啊,然而并没有想到去化简式子... 可能因为昨晚没睡好,今天上午困死 导致暴力打了一个半小时,还不对... #include <algor ...

  2. [NOI Online 2021 提高组] 积木小赛

    思路不说了. 想起来自己打比赛的时候,没睡好.随便写了个\(HASH\),模数开小一半分都没有. 然后学了\(SAM\),发现这个判重不就是个水题. \(SAM\)是字串tire的集合体. 随便\(d ...

  3. 2013 Noip提高组 Day2

    3288积木大赛 正文 题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前 ...

  4. HGOI20180813 (NOIP2018 提高组 Day2 模拟试题)

    省常中省选提高Day2 继续 第一题就考了贪心,正解95pts的贪心策略第一印象是想到的,但是被自己否定掉了qwq,然后打了 不是正解的贪心,样例5没过(可怜)思路如下:先找出每个门对应可以通过的人数 ...

  5. NOIP 2015 提高组 Day2

    期望得分:100+10+60=170 实际得分:100+10+35=145 http://www.cogs.pro/cogs/page/page.php?aid=16 T1 跳石头 时间限制:1 s  ...

  6. 2015 Noip提高组 Day2

    P2678 跳石头 [题目背景] 一年一度的“跳石头”比赛又要开始了! [题目描述] 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和 ...

  7. noip2015提高组day2解题报告

    1.跳石头 题目描述 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块岩石( ...

  8. 【未完成0.0】Noip2012提高组day2 解题报告

    第一次写一套题的解题报告,感觉会比较长.(更新中Loading....):) 题目: 第一题:同余方程 描述 求关于x的同余方程ax ≡ 1 (mod b)的最小正整数解. 格式 输入格式 输入只有一 ...

  9. NOIP 2015复赛提高组Day2 T1==Codevs 4768 跳石头

    时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold  题目描述 Description 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中 ...

  10. 【FZSZ2017暑假提高组Day2】圆盘时钟

    [问题描述] 作为出题人的小Z相信大家对上图这样的圆盘时钟都不会陌生——在理想圆盘时钟上,秒针每一分钟转一圈,分针每一小时转一圈,时针每12小时转一圈,它们均是匀速转动的,在0点时三条针均指向表盘上的 ...

随机推荐

  1. js- day03- 将数据变成柱形图

    柱形图的渲染 * {             margin: 0;             padding: 0;         }  .box {             display: fle ...

  2. css网页布局设置总结

    目录 1 网页样式 1.1 引入方法 1.1.1内联样式 1.1.2内部样式表 1.1.3链接外部样式 1.1.4导入外部样式 1.2 基础语法 1.3 选择器的分类 1.3.1标记选择器 1.3.2 ...

  3. k8s篇-k8s集群架构及组件详解【史上最详细】

    O kubernetes简介 k8s是什么 k8s是一个可移植的.可扩展的开源平台,用于管理容器化的工作负载和服务,可以促进声明式配置和自动化. k8s能做什么 1)服务发现和负载均衡 Kuberne ...

  4. 大数据HDFS凭啥能存下百亿数据?

    欢迎关注大数据系列课程 前言 大家平时经常用的百度网盘存放电影.照片.文档等,那有想过百度网盘是如何存下那么多文件的呢?难到是用一台计算机器存的吗?那得多大磁盘啊?显然不是的,那本文就带大家揭秘. 分 ...

  5. Python:界面开发,wx入门篇

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/3Yb_YAKiMte_f5HanetXiA 本文大概 3617 个 ...

  6. 时隔3个月,Uber 再遭数据泄露...

    在今年9月,Uber 就发生过一起数据泄露事件,尽管黑客并无意发动大规模攻击或以此来获取巨额利益,但其成功获取对 Uber 所有敏感服务的完全管理员访问权限仍令人后怕.而在上周,名为"Ube ...

  7. 实时采集MySQL数据之轻量工具Maxwell实操

    @ 目录 概述 定义 原理 Binlog说明 Maxwell和Canal的区别 部署 安装 MySQL准备 初始化Maxwell元数据库 Maxwell进程启动 命令行参数 配置文件 实时监控Mysq ...

  8. cs231n__2. K-nearest Neighbors

    CS231n 2 K-Nearest Neighbors note ---by Orangestar 1. codes: import numpy as np class NearestNeighbo ...

  9. vue 项目引入 echarts折线图

    一.components文件下新建 lineCharts.vue <template> <div :class="className" :style=" ...

  10. 【转载】【WinAPI】LockWindowUpdate的函数的用法

    DelPhi LockWindowUpdate的函数的用法 Application.ProcessMessages; LockWindowUpdate(Self.Handle); //锁住当前窗口 L ...