zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    datagridview中读取数据判断+考勤每月上班天数判断
    dateTimePicker日期比较+时间段内查询+员工查询薪资步骤+datagridview
    c#word 存取
    位图去空白
    过桥问题
    Dominos 2(DFS)(容器)
    poj 3421(三分)
    poj 3186(DP)
    安装Ubuntu
    poj 3273(二分)
  • 原文地址:https://www.cnblogs.com/jiachinzhao/p/4576014.html
Copyright © 2011-2022 走看看