题目链接

这里只写个摘要,具体的可以看 神仙Itst的博客

大概是每相邻两个位置之间的线段要么被覆盖一次,要么被覆盖三次,然后DP,如下图:

代码:

 #include<bits/stdc++.h>
using namespace std;
#define N 70007
#define M 13
const int lim=;
const int inf=0x3f3f3f3f;
int f[N][M],g[N][M][M];
bool imp[N];
char s[N];
int a[N];
int read()
{
char c;
int x;
while((c=getchar())<||c>);
x=c-;
while((c=getchar())>=&&c<=)
x=x*+c-;
return x;
}
int main()
{
int n,i,j,k;
//freopen("vim.in","r",stdin);
n=read();
scanf("%s",s+);
int tot=,cnt=;
bool flag=false;
for(i=;i<=n;i++)
{
if(s[i]=='e')cnt++,flag=true;
else
{
a[++tot]=s[i]-'a';
imp[tot]=flag;
flag=false;
}
}
memset(f,0x3f,sizeof(f));
memset(g,0x3f,sizeof(g));
f[][a[]]=;
for(i=;i<=tot;i++)
{
for(j=;j<=lim;j++)
{
int t=inf;
if(!imp[i])
{
if(a[i]!=j)t=min(t,f[i-][j]);
}
t=min(t,f[i-][a[i]]+);
if(a[i]!=j)t=min(t,g[i-][a[i]][j]);
t=min(t,g[i-][a[i]][a[i]]+);
f[i][j]=t;
for(k=;k<=lim;k++)
{
int t=inf;
//if(!imp[i])
{
if(a[i]!=j)t=min(t,f[i-][j]+);
t=min(t,f[i-][a[i]]+);
}
if(j!=a[i]&&k!=a[i])t=min(t,g[i-][j][k]+);
if(j!=a[i])t=min(t,g[i-][j][a[i]]+);
if(k!=a[i])t=min(t,g[i-][a[i]][k]+);
t=min(t,g[i-][a[i]][a[i]]+);
g[i][j][k]=t;
}
}
}
printf("%d\n",f[tot][lim]-+*cnt);
return ;
}

LOJ2687 BOI2013Vim 题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. Charles设置断点- (超详解)

    1.选择你要设置断点的接口 2.右键选择 Breakpoints 3.断点的相关配置, Proxy ——>Breakpoint Settings 5.双击刚刚已经设置的断点接口,进行设置 6. ...

  2. 我自己收藏的 Windows 上好用的软件

    已经在使用的工具就不会列出来了. 1. 截图 - Snipaste 截图在我们的生活中,可以算的上是非常频繁的操作了,但是很多人是不是都在使用腾讯聊天软件的聊天截图功能,或许是没有一款称心的.安全的截 ...

  3. 小程序开发笔记【五】---基于LBS附近动态查询

    实现思路 : 获取用户当前位置经纬度坐标 查询动态时将经纬度坐标传给后台 后端通过sql语句计算经纬度坐标之间的距离 // 附近20公里发的动态 按时间排序 let sql = `SELECT * , ...

  4. 云原生生态周报 Vol. 16 | CNCF 归档 rkt,容器运行时“上古”之战老兵凋零

    作者列表:木苏,临石,得为,等等 业界要闻 安全漏洞 CVE-2019-9512 CVE-2019-9514 http2 的 DOS 漏洞,一旦攻击成功会耗尽服务器的 cpu/mem,从而导致服务不可 ...

  5. SublimeText3安装Markdown插件

    由于Webstrom对md文件的预览效果并不理想(与实际网页编译效果差别较大),所以我又改用Sublime进行本地编辑,下面介绍一下怎么搭建环境. 插件安装 整套环境我们就需要两个插件:Markdow ...

  6. 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 下)

    大家好,在上一篇系列文章里,我们一起学习了路由的基本配置,如何创建路由和传参,本篇文章我们一起学习下 Navigation 导航和路由守卫的相关内容. Navigation 如果要改变当前路径,我们可 ...

  7. 2019-11-29-浅谈-Windows-桌面端触摸架构演进

    原文:2019-11-29-浅谈-Windows-桌面端触摸架构演进 title author date CreateTime categories 浅谈 Windows 桌面端触摸架构演进 lind ...

  8. NoSql的对比以及键值对的存储方式(为什么速度特别快)

    什么是NoSql NoSQL(Not Only SQL),泛指非关系型的数据库,是对不同于传统的关系型数据库的数据库管理系统的统称,强调Key-Value Stores和文档数据库的优点.为了解决大规 ...

  9. ASP.NET Core使用MongoDB数据库

    环境:Asp.Net Core Mvc 2.2,MongoDB 4.09 参考文档:http://mongodb.github.io/mongo-csharp-driver/ http://mongo ...

  10. set容器与map容器的简单应用

    set容器中一些函数,取自百度其他大佬已总结好的,如有侵权,请联系删除! set的各成员函数列表如下: c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器 c++ stl容 ...