LOJ2687 BOI2013Vim 题解
这里只写个摘要,具体的可以看 神仙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 题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- Charles设置断点- (超详解)
1.选择你要设置断点的接口 2.右键选择 Breakpoints 3.断点的相关配置, Proxy ——>Breakpoint Settings 5.双击刚刚已经设置的断点接口,进行设置 6. ...
- 我自己收藏的 Windows 上好用的软件
已经在使用的工具就不会列出来了. 1. 截图 - Snipaste 截图在我们的生活中,可以算的上是非常频繁的操作了,但是很多人是不是都在使用腾讯聊天软件的聊天截图功能,或许是没有一款称心的.安全的截 ...
- 小程序开发笔记【五】---基于LBS附近动态查询
实现思路 : 获取用户当前位置经纬度坐标 查询动态时将经纬度坐标传给后台 后端通过sql语句计算经纬度坐标之间的距离 // 附近20公里发的动态 按时间排序 let sql = `SELECT * , ...
- 云原生生态周报 Vol. 16 | CNCF 归档 rkt,容器运行时“上古”之战老兵凋零
作者列表:木苏,临石,得为,等等 业界要闻 安全漏洞 CVE-2019-9512 CVE-2019-9514 http2 的 DOS 漏洞,一旦攻击成功会耗尽服务器的 cpu/mem,从而导致服务不可 ...
- SublimeText3安装Markdown插件
由于Webstrom对md文件的预览效果并不理想(与实际网页编译效果差别较大),所以我又改用Sublime进行本地编辑,下面介绍一下怎么搭建环境. 插件安装 整套环境我们就需要两个插件:Markdow ...
- 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 下)
大家好,在上一篇系列文章里,我们一起学习了路由的基本配置,如何创建路由和传参,本篇文章我们一起学习下 Navigation 导航和路由守卫的相关内容. Navigation 如果要改变当前路径,我们可 ...
- 2019-11-29-浅谈-Windows-桌面端触摸架构演进
原文:2019-11-29-浅谈-Windows-桌面端触摸架构演进 title author date CreateTime categories 浅谈 Windows 桌面端触摸架构演进 lind ...
- NoSql的对比以及键值对的存储方式(为什么速度特别快)
什么是NoSql NoSQL(Not Only SQL),泛指非关系型的数据库,是对不同于传统的关系型数据库的数据库管理系统的统称,强调Key-Value Stores和文档数据库的优点.为了解决大规 ...
- ASP.NET Core使用MongoDB数据库
环境:Asp.Net Core Mvc 2.2,MongoDB 4.09 参考文档:http://mongodb.github.io/mongo-csharp-driver/ http://mongo ...
- set容器与map容器的简单应用
set容器中一些函数,取自百度其他大佬已总结好的,如有侵权,请联系删除! set的各成员函数列表如下: c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器 c++ stl容 ...