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 & ...
随机推荐
- c#的IDisposable
尽量在using中使用非托管资源 1.实现Dispose方法 2.提取一个受保护的Dispose虚方法,在该方法中实现具体的释放资源的逻辑 3.添加析构函数 4.添加一个私有的bool类型的字段,作为 ...
- 通过消息总线Spring Cloud Bus实现配置文件刷新(使用Kafka或RocketMQ)
如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用webhook的机制每次提交代码发送请求来刷新客户端,当客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了.使用 ...
- 一步步在 github pages 上用 jekyll 搭建属于自己的博客
序 我的专业与互联网没有太大关系,接触博客还是工作以后的事情.随着工作的经验增加,总想将自己的所思所得记录下来,毕竟,好记性不如烂笔头. 开始是将自己的总结在本地保存,但是本地有一个劣势,就是不能随时 ...
- Wait… What Happens When my React Native Application Starts? — An In-depth Look Inside React Native
Discover how React Native functions internally, and what it does for you without you knowing it. Dis ...
- Linq与委托
using System; using System.Linq; using System.Reflection; using Stuglxt_Models; namespace ConsoleApp ...
- linux系统下使用nginx反向代理asp.net core,并配置免费的https证书
反向代理是为动态 Web 应用提供服务的常见设置. 反向代理终止 HTTP 请求,并将其转发到 ASP.NET Core 应用. 1.在asp.net core项目中的Startup的Configur ...
- 安装oracle时出现的问题
数据库引擎和几个功能安装失败后 ,重新再装还是一样,好不容易全部功能装完成后结果发现登录不了oracle!!!!!!!!!!!!! 气死人,搞了一上午才发现原来是微软账号在搞事,登录本地管理员账户就 ...
- ASP.NET Core使用MongoDB数据库
环境:Asp.Net Core Mvc 2.2,MongoDB 4.09 参考文档:http://mongodb.github.io/mongo-csharp-driver/ http://mongo ...
- Ipfs基础入门
Ipfs介绍 Ipfs(Inter-Planetary File System!),中文译为星际网络文件系统,是基于默克尔有向无环图(merkle dag)的全球性p2p文件系统. 是一个面向全球的, ...
- Mac 下安装 jdk
1.安装jdk 我们是需要java环境的- 到oracle官网下载se: Java SE Development Kit 8 Downloads https://www.oracle.com/tech ...