Codeforces Round #306 (Div. 2) 550A Two Substrings
链接: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的更多相关文章
- 水题 Codeforces Round #306 (Div. 2) A. Two Substrings
题目传送门 /* 水题:遍历一边先找AB,再BA,再遍历一边先找BA,再AB,两种情况满足一种就YES */ #include <cstdio> #include <iostream ...
- 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 ...
- 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 ...
- 数学/找规律/暴力 Codeforces Round #306 (Div. 2) C. Divisibility by Eight
题目传送门 /* 数学/暴力:只要一个数的最后三位能被8整除,那么它就是答案:用到sprintf把数字转移成字符读入 */ #include <cstdio> #include <a ...
- DFS Codeforces Round #306 (Div. 2) B. Preparing Olympiad
题目传送门 /* DFS: 排序后一个一个出发往后找,找到>r为止,比赛写了return : */ #include <cstdio> #include <iostream&g ...
- 「日常训练」Two Substrings(Codeforces Round 306 Div.2 A)
题意与分析 一道非常坑的水题.分析醒了补. 代码 #include <bits/stdc++.h> #define MP make_pair #define PB emplace_back ...
- 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 ...
- 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 ...
- 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/ ...
随机推荐
- java对一个int数组进行排序、去重
思路: 1.使用 HashSet 进行去重 2.将 HashSet 变为 TreeSet 3.使用 TreeSet 进行排序 4.将 Set 变为 Integer 数组 5.将 Integer 数组变 ...
- Spring 中IOC(控制反转)&& 通过SET方式为属性注入值 && Spring表达式
### 1. Spring IoC IoC:Inversion of control:控制反转:在传统开发模式下,对象的创建过程和管理过程都是由开发者通过Java程序来实现的,操作权在开发者的Java ...
- Linux文件服务器实战(系统用户)
ftp匿名用户设置完成之后任何人都可以访问服务器端文件,目录,甚至可以修改删除文件和目录,,那如何存放私密文件并保证文件或者目录专属于拥有者呢,就需要使用vsftp系统用户来实现了. 1.在linux ...
- Python容器--list, tuple, dict, set
## Python 中有四种用于存放数据的序列--list, tuple, dict, set ## list 列表 - 可以存放任意类型数据的有序序列 - 列表可以由零个或多个元素组成,元素之间用逗 ...
- array_unique() - 去除数组中重复的元素值
array_unique() 定义和用法 array_unique() 函数移除数组中的重复的值,并返回结果数组. 当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除. 返回的数组中键名 ...
- jquery 配合 ajax 完成 在线编辑 你值得拥有
思路分析: 将 table中的表格 改变成为 input表格框获得值 ajax配合修改 删除 <?php use yii\helpers\Url; $web = Url::base(); ?&g ...
- python网络爬虫入门范例
python网络爬虫入门范例 Windows用户建议安装anaconda,因为有些套件难以安装. 安装使用pip install * 找出所有含有特定标签的HTML元素 找出含有特定CSS属性的元素 ...
- python scrapy实战糗事百科保存到json文件里
编写qsbk_spider.py爬虫文件 # -*- coding: utf-8 -*- import scrapy from qsbk.items import QsbkItem from scra ...
- PAT Basic 1057
1057 数零壹 给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有 ...
- 通过aop添加日志管理
1.使用spring 的 aop 技术切到自定义注解上,所以先创建一个自定义注解类 import java.lang.annotation.*; @Target(ElementType.METHOD) ...