HDU5455 Fang Fang 模拟
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5455
题目大意:定义递推式F为f(0)='f',f(1)='ff',f(2)='cff',f(n)=f(n-1)+'f',给出一个首位相连的字符串s,问组成s至少需要多少个F,如果F不能组成s,输出-1.
分析:很明显我们有:
(1)如果字符串含有除c和f外的其他字符的话,那么输出-1,如果3倍c的数量大于字符串s的长度,也输出-1.
(2)如果字符串只含有f,那么结果为(len+1)/2,len为字符串s的长度.
(3)如果s中只含有一个c,且len大于等于3,那么结果为1.
(4)对于其他情况,我们纪录每一个c出现的位置,然后从后往前遍历,如果c[i]-c[i-1]>2的话,那么就说明这两个c之间含有大于等于2个的f,计数器加1,否则标记不可能.对于第一个c之前和最后一个c之后的部分,如果相加有大于等于2个f的话,计数器再加1,否则标记不可能。
实现代码如下:
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
const int maxn=1e6+10;
char str[maxn];
int c[maxn];
int main()
{int t,T=1;scanf("%d",&t);while(t--){scanf("%s",str);int len=strlen(str);int cnt=0;bool flag=true;for(int i=0;i<len;i++){if(str[i]=='c') c[cnt++]=i;if(str[i]!='c'&&str[i]!='f') flag=false;}printf("Case #%d: ",T++);if(!flag||cnt*3>len){puts("-1");continue;}if(!cnt){printf("%d\n",(len+1)/2);continue;}if(cnt==1&&len>=3){puts("1");continue;}int ans=0;for(int i=cnt-1;i>0;i--){if(c[i]-c[i-1]>2) ans++;else{flag=false;break;}}if(c[0]+len-c[cnt-1]>2) ans++;else flag=false;if(flag) printf("%d\n",ans);else puts("-1");}return 0;
}
HDU5455 Fang Fang 模拟相关推荐
- 【HDU - 5455】Fang Fang(水题,有坑)
题干: Fang Fang says she wants to be remembered. I promise her. We define the sequence FF of strings. ...
- HDU-5455 Fang Fang (思维)
题目链接 题目:输入一个字符串,问最少能由几个Fi组成,若不能恰好由Fi组成,输出-1: 这题有一个坑点就是如果输入的字符串中有除c和f以外的其他字符时直接输出-1(刚开始做的时候没有想到这一点,被坑 ...
- 电脑编程教学_东莞沙田mastercam编程学习怎么收费
东莞沙田mastercam编程学习怎么收费 深圳卓越培训中心UG综合班主要课程:1,软件介绍,界面熟悉 ,快捷键,图层使用.2,草图使用,三维曲线绘制修改,草图线3D线互相转换.3,建模,绘制3D图形 ...
- 【2021最新综述】Deep Neural Approaches to Relation Triplets Extraction:A Comprehensive Survey
[2021最新综述]Deep Neural Approaches to Relation Triplets Extraction:A Comprehensive Survey 1 Introducti ...
- python、Linux、MySQL学习笔记
git操作: 1.git init [project-name] 2.git clone url 克隆文件 3.git status 查看目前状态 4.git add . 添加 5.git com ...
- python使用蒙特卡洛方法计算圆周率的流程图怎么画_在python中用蒙特卡洛算法计算圆周率...
本文写给那些python初学者与对蒙特卡洛算法感兴趣,但却不知该如何理解或应用的人. (虽然我发现这个貌似有许多人做过了,但是程序都相对复杂,不便于理解,于是我就自己编写了一段程序,海龟的可视化请看下 ...
- 递推DP HDOJ 5459 Jesus Is Here
题目传送门 题意:简单来说就是sn = sn-1 + sn-2递推而来,求其中所有c字符的:∑i<j:sn[i..i+2]=sn[j..j+2]=''cff"(j−i) mod 530 ...
- 开启注册 | AAAI 2022论文北京预讲会,21场报告+24个Poster等你来
注册官网:https://event.baai.ac.cn/activities/228 国际人工智能会议AAAI 2022论文北京预讲会由中国中文信息学会青年工作委员会主办.智源社区和北京航空航天大 ...
- 蓝桥杯——机器人行走
某少年宫引进了一批机器人小车.可以接受预先输入的指令,按指令行动.小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字). 例如,我们可以对小车输入如下的指令:1 ...
- 【 HDU - 5459】Jesus Is Here(dp)
题干: I've sent Fang Fang around 201314 text messages in almost 5 years. Why can't she make sense of w ...
最新文章
- 创建一个栈存储结构,并且写入一些对栈的基本的操作
- 这些 Python 不为人知的「坑」,躲都躲不开
- linux 发行版本和 及其与linux内核之间的关系
- C# Levenshtein计算字符串的相似度
- 无限轮播的N+2 策略
- php 函数中静态变量的问题
- springboot多数据源使用EntityManager
- Java 源程序与编译型运行区别
- 在五分钟内学习使用Python进行类型转换
- Java实现:月,日,年,周,访问量统计
- 【DATAGUARD】物理dg在主库丢失归档文件的情况下的恢复(七)
- 安卓黑域使用激活和使用
- 使用 PyQT5 来做一个简易版库存管理系统(二)
- 系统架构设计-企业信息化战略与实施 知识点
- ITSM系统实施成功的前提
- 九宫格构图学习[1]
- 在unik中,写一个Go HTTP服务器
- 跳转到三方App ,三方App 是如何返回自己的App的
- seo网站推广方法简介
- JSP页面之间传值的方法总结