2018.06.29 NOIP模拟 1807(简单递推)
1807
题目背景
SOURCE:NOIP2015-SHY-2
题目描述
给出一个由数字(‘0’-‘9’)构成的字符串。我们说一个子序列是好的,如果他的每一位都是 1、8、0、7 ,并且这四个数字按照这种顺序出现,且每个数字都出现至少一次(111888888880000007 是好的,而 1087 不是)。请求出最大的好的子序列的长度。
输入格式
输入唯一一行一个字符串。
输出格式
一行一个整数表示答案。
样例数据 1
输入
1800777700088888000777
输出
13
备注
【数据范围】
对 30% 的输入数据 :字符串长度≤100 ;
对 100% 的输入数据 :字符串长度≤1000000 。
这道题是一道显然的递推,考试时数组开小了90" role="presentation" style="position: relative;">9090分gg" role="presentation" style="position: relative;">gggg.
代码如下:
#include<bits/stdc++.h>
using namespace std;
char s[1000005];
int n,cnt[5],f[5][1000005];
int main(){
scanf("%s",s+1);
n=strlen(s+1);
for(int i=1;i<=n;++i)f[1][i]=f[1][i-1]+(s[i]=='1');
for(int i=1;i<=n;++i){
f[2][i]=f[2][i-1]+(s[i]=='8'&&f[2][i-1]);
if(s[i]=='8'&&f[1][i-1])f[2][i]=max(f[2][i],f[1][i-1]+1);
}
for(int i=1;i<=n;++i){
f[3][i]=f[3][i-1]+(s[i]=='0'&&f[3][i-1]);
if(s[i]=='0'&&f[2][i-1])f[3][i]=max(f[3][i],f[2][i-1]+1);
}
for(int i=1;i<=n;++i){
f[4][i]=f[4][i-1]+(s[i]=='7'&&f[4][i-1]);
if(s[i]=='7'&&f[3][i-1])f[4][i]=max(f[4][i],f[3][i-1]+1);
}
printf("%d",f[4][n]);
return 0;
}
2018.06.29 NOIP模拟 1807(简单递推)的更多相关文章
- 2018.06.29 NOIP模拟 Gcd(容斥原理)
Gcd 题目背景 SOURCE:NOIP2015-SHY-2 题目描述 给出n个正整数,放入数组 a 里. 问有多少组方案,使得我从 n 个数里取出一个子集,这个子集的 gcd 不为 1 ,然后我再从 ...
- 2018.06.29 NOIP模拟 旅馆(线段树)
旅馆 [问题描述] OIEROIEROIER 们最近的旅游计划,是到长春净月潭,享受那里的湖光山色,以及明 媚的阳光.你作为整个旅游的策划者和负责人,选择在潭边的一家著名的旅馆住 宿.这个巨大的旅馆一 ...
- 2018.06.29 NOIP模拟 Minimum(最小生成树)
Minimum 题目背景 SOURCE:NOIP2015-SHY-2 题目描述 给出一幅由 n 个点 m 条边构成的无向带权图. 其中有些点是黑点,另外点是白点. 现在每个白点都要与他距离最近的所有黑 ...
- 2018.06.29 NOIP模拟 繁星(前缀和)
繁星 [问题描述] 要过六一了,大川正在绞尽脑汁想送给小伙伴什么礼物呢.突然想起以前拍过一张夜空中的繁星的照片,这张照片已经被处理成黑白的,也就是说,每个像素只可能是两个颜色之一,白或黑.像素(x,y ...
- 2018.06.29 NOIP模拟 边的处理(分治+dp)
边的处理(side.cpp) [问题描述] 有一个 n 个点的无向图,给出 m 条边,每条边的信息形如<x,y,c,r><x,y,c,r><x,y,c,r>. 给出 ...
- 2018.06.29 NOIP模拟 排列(线段树)
排列(premu.cpp) [题目描述] 对于一个 1 到 n 的排列,逆序数的定义为:排列中第 i 位 ai的逆序数就是 a1-ai-1中比 ai大的数的个数.另外用 pi表示 a1,-,ai的逆序 ...
- 2018.06.29 NOIP模拟 区间(前缀和差量)
区间(interval.cpp) 时限:2000ms 空间限制:512MB [问题描述] 给出一个长度为 n 的序列 a[1]-a[n]. 给出 q 组询问,每组询问形如<x,y>< ...
- 2018.10.09 NOIP模拟 路途(递推+矩阵快速幂优化)
传送门 签到题.(考试的时候写挂爆0) 令AiA_iAi表示邻接矩阵的iii次幂. 于是就是求Al+Al+1+...+ArA_l+A_{l+1}+...+A_rAl+Al+1+...+Ar. ...
- 2018.06.27 NOIP模拟 节目(支配树+可持久化线段树)
题目背景 SOURCE:NOIP2015-GDZSJNZX(难) 题目描述 学校一年一度的学生艺术节开始啦!在这次的艺术节上总共有 N 个节目,并且总共也有 N 个舞台供大家表演.其中第 i 个节目的 ...
随机推荐
- 子元素scroll父元素容器不跟随滚动JS实现
仅供参考: function parentNotRoll($id){ var flg;//标记滚动方向,true-向下,false-向上 var $test = document.getElement ...
- C++Primer笔记-----day08
==========================================================================day08===================== ...
- IExpress 制作安装包 注意事项
被打包的文件名不能超过8个字符,否则iexpress会取前6个字符 + "~1".
- 英语广播原声听力100篇MP3及听力原文
=============7.6================ Passage 031- 人工智能对人类的利与弊From a personal assistant, to doing searche ...
- [转]被玩坏的innerHTML、innerText、textContent和value属性
一.前言 由于innerText并非W3C标准属性,因此我们无法在FireFox中使用它,一般情况下我们可以使用textContent来代替,但它两者是否就能完全等同呢?在坑爹的表单元素(如input ...
- 流和Variant的转换
procedure TForm2.VariantToStream (const v : olevariant; Stream : T ...
- array numpy 模块
高级用法:http://www.jb51.net/article/87987.htm from array import * 调用 array 与 import numpy as np 调用 np. ...
- Java HashMap,LinkedHashMap,TreeMap
Java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMapMap主要用于存储健值对,根据 ...
- nginx的Mainline version、Stable version、Legacy version
Nginx官网提供了三个类型的版本Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版Stable version:最新稳定版,生产环境上建议使用的版 ...
- RecycleView实现侧滑删除item
对于列表空间的侧滑操作,网上有很多开源的空间可以使用,Google在它的新控件RecycleView中增加了侧滑的API,完全遵循Material Design设计规范,下面看看效果演示: 下面看看介 ...