当前位置: 首页 > news >正文

GESP2025年3月认证C++七级( 第三部分编程题(2)等价消除)

参考程序:

#include <cstdio>
#include <map>
using namespace std;
const int N = 2e5 + 5;
int n;
char s[N];
map <int, int> m;
long long ans;

int main() {
    scanf("%d", &n);
    scanf("%s", s + 1);
    int v = 0;
    m[v]++;  // 初始化状态0出现一次

    for (int i = 1; i <= n; i++) {
        v ^= 1 << (s[i] - 'a');  // 更新状态:翻转当前字母的位
        ans += m[v];            // 当前状态之前出现过几次,就说明有几个子串可以消除
        m[v]++;                 // 记录当前状态出现次数
    }

    printf("%lld\n", ans);
    return 0;
}

http://www.dtcms.com/a/129194.html

相关文章:

  • 图像形态学操作对比(Opencv)
  • VSCode中选择Anaconda的Python环境
  • java数组06:Arrays类
  • 数据结构--线性表
  • 让你方便快捷实现主题色切换(useCssVar)
  • 【征程 6】工具链 VP 示例中 Cmakelists 解读
  • 创建虚拟环境无法加载到pycharm当conda环境,只能为python环境
  • C语言-字符串操作函数手册:语法、技巧与经典应用
  • FreeRTOS使任务处于挂起态的API
  • 小白学习java第11天(下):多线程详解
  • MergeX亮相GTC2025:开启全球广告流量交易新篇章
  • ​asm汇编源代码之-汉字点阵字库显示程序源代码下载​
  • JAVA——初识JAVA
  • Java学习手册:Java异常处理机制
  • 前端防御性编程
  • java数组08:稀疏数组
  • 【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】【论文篇+改进】A题解题全流程(持续更新)
  • 高并发秒杀系统如何锁住库存
  • C语言数字图像处理---Gabor滤波器
  • JAVA学习-练习试用Java实现“实现一个Java程序,对大数据集中的数据进行类型转换”
  • 关于 C++ 中 cin 对象和 EOF 的详细解释
  • 学习Mysql对库和表的操作以及对数据的操作
  • 【Linux内核】ATT汇编编程练习
  • 【特权FPGA】之PS/2键盘解码
  • 小白学习java第12天(下):网络编程
  • 第1个小脚本:英语单语按字母个数进行升序排序
  • Spark Core(2)
  • Java学习打卡-Day25-注解和反射、Class类
  • 除了 `task_type=“SEQ_CLS“`(序列分类),还有CAUSAL_LM,QUESTION_ANS
  • 分布式系统-脑裂,redis的解决方案