链接:http://codeforces.com/contest/550/problem/A

这是我第一次玩cf这种比赛,前面做了几场练习,觉得div2的前面几个还是比较水的。

所以看到这道题我果断觉得是拼手速的题啊,结果瞬间就一发WA,连pretest都没通过,

然后开始想,发现没那么简单的样子,很多坑的样子,当我写了2个循环把AB BA 都扫一遍时,

认为考虑周全后,觉得能过了,就交,过了pretest,当时看room里面 大多数还没过A呢,觉得很高兴。

然后学长说这题能叉很多人,我不懂什么是叉,后来才知道原来这就是所谓的hack。学长给我数据叫我去hack

别人,说这数据绝对能hack很多人,还截图给我 他们room好多都被他hack了。我点开许多人的代码,各种语言都有的,

看来看去感觉都能过啊,就没去hack了,因为才做了一题,还要做下面的题目。结果当我过了第二题时,突然弹出我被hack的消息。。。

我还想去resubmmit呢,不懂规则也是悲剧啊。把C题不考虑的写了写,交过了pretest,觉得圆满了,谁知道原来这只是部分数据了。

打完第一次cf,懂了很多规则,的确很刺激,好玩,下面就讲A题了。

我搞来搞去,觉得分情况是最保险的了,因为情况数比较少。

扫一遍 得到AB  和 BA的个数a,b

1:如果a,b有一个为0 那么NO

2:如果a ,b都为1 ,那么在原串中找是否存在子串ABA 或者BAB 存在 NO,否则 YES

3:如果a,b中有一个为1,另一个为2,找是否存在子串ABAB,或者BABA 存在NO 否则YES

4如果 a,b >=2 那么不会存在覆盖的问题,YES

代码如下

 1 #include<stdio.h>
2 #include<iostream>
3 #include<cstring>
4 #include<stack>
5 #include<queue>
6 #include<ctype.h>
7 #include<math.h>
8 #include<algorithm>
9 #include<string.h>
10 #include<set>
11 using namespace std;
12 const int maxn = 1e5+5;
13 char s[maxn];
14 int main()
15 { int a = 0,b = 0;
16 cin>>s;
17 int len = strlen(s);
18 for(int i = 0;i<len;i++)
19 {
20 if(s[i]=='A'&&s[i+1]=='B') a++;
21 if(s[i]=='B'&&s[i+1]=='A') b++;
22 }
23 if(!a||!b) puts("NO");
24 else
25 {
26 if(a==1&&b==1)
27 {
28 if(strstr(s,"ABA")||strstr(s,"BAB")) puts("NO");
29 else puts("YES");
30 }
31 else if(a==2&&b==1&&strstr(s,"ABAB")) puts("NO");
32 else if(b==2&&a==1&&strstr(s,"BABA")) puts("NO");
33 else puts("YES");
34 }
35
36 return 0;
37 }

Codeforces Round #306 (Div. 2) 550A Two Substrings的更多相关文章

  1. 水题 Codeforces Round #306 (Div. 2) A. Two Substrings

    题目传送门 /* 水题:遍历一边先找AB,再BA,再遍历一边先找BA,再AB,两种情况满足一种就YES */ #include <cstdio> #include <iostream ...

  2. Codeforces Round #306 (Div. 2) A. Two Substrings 水题

    A. Two Substrings Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/550/pro ...

  3. Codeforces Round #306 (Div. 2) A. Two Substrings【字符串/判断所给的字符串中是否包含不重叠的“BA” “AB”两个字符串】

    A. Two Substrings time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  4. 数学/找规律/暴力 Codeforces Round #306 (Div. 2) C. Divisibility by Eight

    题目传送门 /* 数学/暴力:只要一个数的最后三位能被8整除,那么它就是答案:用到sprintf把数字转移成字符读入 */ #include <cstdio> #include <a ...

  5. DFS Codeforces Round #306 (Div. 2) B. Preparing Olympiad

    题目传送门 /* DFS: 排序后一个一个出发往后找,找到>r为止,比赛写了return : */ #include <cstdio> #include <iostream&g ...

  6. 「日常训练」Two Substrings(Codeforces Round 306 Div.2 A)

    题意与分析 一道非常坑的水题.分析醒了补. 代码 #include <bits/stdc++.h> #define MP make_pair #define PB emplace_back ...

  7. Codeforces Round #306 (Div. 2) E. Brackets in Implications 构造

    E. Brackets in Implications Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/conte ...

  8. Codeforces Round #306 (Div. 2) D. Regular Bridge 构造

    D. Regular Bridge Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/550/pro ...

  9. Codeforces Round #306 (Div. 2) C. Divisibility by Eight 暴力

    C. Divisibility by Eight Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/ ...

随机推荐

  1. HJ浇花

    题目描述 HJ养了很多花(99999999999999999999999999999999999盆),并且喜欢把它们排成一排,编号0~999999999999999999999999999999999 ...

  2. lintcode_177_把排序数组转换为高度最小的二叉搜索树

    把排序数组转换为高度最小的二叉搜索树   描述 笔记 数据 评测 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树. 注意事项 There may exist multiple vali ...

  3. Java - 得到项目中properties属性文件中定义的属性值

    public static String getPropertiesValue(String fileName, String key) {   return ResourceBundle.getBu ...

  4. 命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”(是否缺少程序集引用?

    在一个web项目中需要导出word打印,引用Microsoft.Office.Interop.Word后,在pages里使用正常,在app_code里新建类引用就报错. Report.cs里using ...

  5. python__系统 : socket_UDP相关

    socket.socket() 可以创建一个套接字: from socket import * from threading import Thread udp_socket = None dest_ ...

  6. tp5简单构造

    application 应用目录 网站核心index前台目录 controller 控制器admin 后台目录 model 数据模型view 视图extend 静态类库目录public 静态资源和入口 ...

  7. poj 2965 枚举+DFS

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25343 ...

  8. Fragment Touch事件泄露

    当Fragment的栈里面有几个fragment的时候,这个时候如果是几个fragment状态是hide,当你触摸当前fragment的时候,下层的fragment的事件被触发,这是由于Touch事件 ...

  9. 17 rest-framework框架的基本组件

    序列化 创建一个序列化类 简单使用 开发我们的Web API的第一件事是为我们的Web API提供一种将代码片段实例序列化和反序列化为诸如json之类的表示形式的方式.我们可以通过声明与Django ...

  10. CSS3 loading效果全

    梦想天空 关注前端开发技术 ◆ 推动 HTML5 & CSS3 技术发展 ◆ 本博客全新站点:yyyweb.com 欢迎围观:) 首页 管理 订阅 网页设计 JavaScript jQuery ...