开始想到dp去了…

还是考虑问题太片面了

取 对 立 事 件 , 计 算 不 合 法 的 子 串 数 量 取对立事件,计算不合法的子串数量 取对立事件,计算不合法的子串数量

不 合 法 子 串 只 可 能 是 形 如 不合法子串只可能是形如 不合法子串只可能是形如

A + B B B B , B + A A A A , A A A A + B , B B B B + A 这 样 的 A+BBBB,B+AAAA,AAAA+B,BBBB+A这样的 A+BBBB,B+AAAA,AAAA+B,BBBB+A这样的

因 为 再 加 任 何 的 A 或 者 B , 都 会 使 得 相 邻 的 两 个 A 间 是 回 文 , 相 邻 的 B 间 是 回 文 因为再加任何的A或者B,都会使得相邻的两个A间是回文,相邻的B间是回文 因为再加任何的A或者B,都会使得相邻的两个A间是回文,相邻的B间是回文

那 么 直 接 统 计 即 可 那么直接统计即可 那么直接统计即可

//定义dp[i]是以i结尾的最长序列
//若当前字母是'A',如果上一个字母是'A',那么dp[i]=dp[i-1]
//如果上一个字母是'B',那么dp[i]=dp[last]  last指最早出现的字母'A'#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,ans,dp[300009];
char a[300009];
signed main()
{cin >> n >> (a+1);int pre=1;for(int i=2;i<=n;i++){if( a[i]!=a[i-1] ){ans+=(i-pre);//i-pre是前面连续的字母长//这里是计算形如AAAAAB,BBBBBA pre=i; }else if(pre!=1)  ans++;//这里计算形如BAAAAA,ABBBBB//为啥pre!=1?当pre=1说明前面都是一种字母,所以不能加上答案 }cout << n*(n-1)/2-ans;
}

D. AB-string(对立事件)相关推荐

  1. 几道常见String面试题

    学而时习之,温故而知新1 Integer a = new Integer(123); Integer b = new Integer(123); System.out.println(a == b); ...

  2. String拼接字符串效率低,你知道原因吗?

    面试官Q1:请问为什么String用"+"拼接字符串效率低下,最好能从JVM角度谈谈吗? 对于这个问题,我们先来看看如下代码: public class StringTest {p ...

  3. 5 个刁钻的 String 面试题!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 这篇来看看关于 Java String 类的 5 道面试题,这五道 ...

  4. 图文解读:5 个刁钻的 String 面试题!

    本文来源: https://blog.csdn.net/u011541946/article/details/79865160 这篇来看看关于 Java String 类的 5 道面试题,这五道题,我 ...

  5. 一篇与众不同的 String、StringBuilder 和 StringBuffer 详解

    1 碎碎念  这是一道老生常谈的问题了,字符串是不仅是 Java 中非常重要的一个对象,它在其他语言中也存在.比如 C++.Visual Basic.C# 等.字符串使用 String 来表示,字符串 ...

  6. 2.Java中String,StringBuilder以及StringBuffer的关系与区别

    String     StringBuffer     StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...

  7. c++ string 拼接_String类5个常见面试题的解答过程和原理

    作者:Anthony_tester原文:https://blog.csdn.net/u011541946/article/details/79865160 这篇来看看关于Java String类的5道 ...

  8. java中String new和直接赋值的区别

        Java中String new和直接赋值的区别     对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才 ...

  9. Swift 中 String 取下标及性能问题

    取下标 String String 用 String.Index 取下标(subscript)得到 Character,String.Index 要从 String 中获取 let greeting ...

  10. C++ string 详解

    C++ STL 容器 string string 是 C++ 对数据结构字符动态数组的实现.要使用 string,请在程序头添加: #include <string> using name ...

最新文章

  1. 「干货」小程序风头正劲,传统商家该如何把握机会抢占红利?
  2. 理论计算机科学中最令人困惑的谜题之一被解开
  3. mysql count 条件_我以为我对MySql很了解,直到我面试了字节跳动
  4. 数据中心新认证出现,UPTIME面临挑战
  5. go语言中channel的创建和销毁以及匿名函数的使用
  6. 基于geopandas的空间数据分析—geoplot篇(下)
  7. 【BZOJ1040】【codevs1423】骑士,第一次的基环外向树DP
  8. 数码相机专业术语解答
  9. java IO流、集合类部分小知识点总结
  10. 小程序开发之单页面生命周期
  11. 电工电子产品环境试验GB国标汇总
  12. ImageJ(Fiji)安装
  13. 3DMAX 卸载方法,完美彻底卸载清除干净3DMAX各种残留注册表和文件【转载】
  14. html 灯箱效果,基于 BootStrap 4 的图片灯箱效果 | 智慧宫
  15. 09-03 NOIP模拟测试36
  16. Python(TensorFlow框架)实现手写数字识别系统
  17. 完美Zotero文件同步,Zotero+Koofr+OneDrive神器叠buff
  18. JDK新特性-LocalDateTime
  19. 什么是SEO,新手SEO须知!
  20. 实现表格隔行变色的方法

热门文章

  1. WEB2.0时代我还开网店干什么?
  2. 判断手机的的IP在不在中国
  3. 阻塞性系统调用失败,errno(ENTIR)4 [Interrupted system call]系统调用被信号中断
  4. 四、文件管理(一)文件系统基础
  5. MYSQL查询今天昨天本周本月等的数据
  6. Spring官网阅读 | 总结篇
  7. Openlayers 地名搜索、坐标搜索、行政区划等服务-基于天地图Web服务
  8. k8s中secret解析
  9. JavaScript---错误对象
  10. sparrow-js·场景化低代码搭建-了解一下