题目大意:f[1]=f,f[2]=ff,f[3]=ffc,以后f[n]每增加1,字符串增加一个c。给出一个字符串,求最少有多少个f[]组成。(字符串首尾相连,比如:ffcf可看做cfff)

题目思路:判断多少个c,但是每个c之间必须有两个f,首尾的c也应判断首尾相连后两者之间的距离。坑点在与

1.给出的字符串中可能包含其它字符

2.严格按照gets()读入

3.若不含c,求有多少个f[2],若有多余补上一个f[1]

3.1.出题人神经病

#include<cstdio>
#include<stdio.h>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<queue>
#define INF 0x3f3f3f3f
#define MAX 1000100
#define mod 1000000007 using namespace std; char str[MAX];
int index[MAX];//存储每个c的位置 int check()
{
int len,i,j,ans=,sum=,ok=,flag=,cnt=;
memset(index,,sizeof(index));
len=strlen(str);
if(len==)
return -;
for(i=;i<len;i++)
{
if(str[i]=='c')
{
index[cnt++]=i;
sum++;
}
else if(str[i]!='c' && str[i]!='f')//存在其他字符直接返回0
return ;
}
cnt--; if(sum > (len-)/)
return ;
for(i=;i<=cnt;i++)
{
if(index[i] - index[i-] <= )//每个c至少相隔2个单位
return ;
}
if(cnt > )//判断收尾的c之间的距离
{
int k=len-(index[cnt]-index[]);//
if(k <= )
return ;
} if(sum==)//如果没有c,求str中有多少个f【2】,不够上一个补f【1】
{
return (len+)/;
} return sum;
}
int main()
{
int T,ans,cnt=;
scanf("%d",&T);
getchar();
while(T--)
{
gets(str);
ans=check();
if(ans==)
ans=-;
else if(ans==-)
ans=;
printf("Case #%d: %d\n",cnt++,ans);
}
return ;
}

HDU 5455 Fang Fang 水题,但题意描述有问题的更多相关文章

  1. HDU 5455:Fang Fang 查cff个数

    Fang Fang Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total ...

  2. HDU 4950 Monster (水题)

    Monster 题目链接: http://acm.hust.edu.cn/vjudge/contest/123554#problem/I Description Teacher Mai has a k ...

  3. HDU 4813 Hard Code 水题

    Hard Code Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.act ...

  4. HDU 4593 H - Robot 水题

    H - RobotTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.act ...

  5. hdu 1106:排序(水题,字符串处理 + 排序)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  6. HDOJ/HDU 2560 Buildings(嗯~水题)

    Problem Description We divide the HZNU Campus into N*M grids. As you can see from the picture below, ...

  7. HDOJ(HDU) 1859 最小长方形(水题、、)

    Problem Description 给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在内.长方形框的边分别平行于x和y坐标轴,点落在边上也算是被框在内 ...

  8. HDU - 1716 排列2 水题

    排列2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  9. HDU—2021-发工资咯(水题,有点贪心的思想)

    作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵  但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每 ...

  10. hdu 5038 水题 可是题意坑

    http://acm.hdu.edu.cn/showproblem.php?pid=5038 就是求个众数  这个范围小 所以一个数组存是否存在的状态即可了 可是这句话真恶心  If not all ...

随机推荐

  1. Linux中kettle启动spoon.sh遇到的问题

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAccAAAAYCAIAAAAAgaGrAAAE1klEQVR4nO1b2ZWrMAylLgpyPa7Gzb

  2. html5 让IE6,7支持HTML5语义化标签的文件

    https://github.com/aFarkas/html5shiv/blob/master/src/html5shiv.js   只要应用这个js就行了

  3. Find The Multiple(bfs)

    Find The Multiple Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) T ...

  4. Sql CE 数据库编程

    用户工具: http://www.linqpad.net/ 查询编辑数据 http://sqlcequery.codeplex.com/  查询编辑数据 开发人员工具: 安装:EF Tools nug ...

  5. 对http协议断点续传的理解

    断点续传指的是下载传输文件可以中断,之后重新下载时可以接着中断的地方开始下载,而不必从头开始下载.断点续传需要客户端和服务端都支持. 原理是客户端一块一块的请求数据,最后将下载回来的数据块拼接成完整的 ...

  6. 1001. A+B Format

    Calculate a + b and output the sum in standard format -- that is, the digits must be separated into ...

  7. javaWEB总结(3):ServletConfig对象

    1.首先找到ServletConfig的API: ServletConfig封装了servlet的配置信息,并且可以获取servletContext对象. ServletConfig共有四个方法: 1 ...

  8. 您可能无法使用服务器管理器,如果两个线程同时访问 IIS 管理 IIS 的修补程序

    http://support.microsoft.com/kb/946517 如果多线程操作 win2003 iis 失败, 打上这个补丁就好了

  9. python实现邮件发送完整代码(带附件发送方式)

    实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator'#coding=gb2312 from email.Header import ...

  10. 键盘虚拟键值编码表 使用keybd_Event

    键盘虚拟键值编码表 使用keybd_Event 模拟键盘输入首先要用到一个API函数:keybd_event. 我们是菜鸟,所以不必具体去理解它的详细用法,只要按以下方法使用即可了!呵呵! 模拟按键有 ...