首页 > 其他分享 >abc295D 统计由SS构成的子串个数

abc295D 统计由SS构成的子串个数

时间:2024-03-07 20:57:45浏览次数:15  
标签:子串 node cnt SS rep abc295D nd int

给出长为n的数字串,问它存在多少个子串是happy串?happy串指经重排后,可以由两段同样的内容连起来拼成,比如12341234。
数据范围:1<=n<=5E5

哈希判断是否相同,只需要判断各个数字出现的奇偶性即可。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,b) for(int i=a; i<=b; i++)
#define per(i,a,b) for(int i=b; i>=a; i--)

struct node {
    int cnt[10];
    node() {
        rep(i,0,9) cnt[i] = 0;
    }
    void add(int x) {
        cnt[x] += 1;
        cnt[x] %= 2;
    }
    int encode() {
        int h = 0;
        rep(i,0,9) {
            h = h * 3 + cnt[i];
        }
        return h;
    }
};
map<int,int> cnt;
string s;
void solve() {
    cin >> s;
    node nd;
    int ans = 0;
    cnt[0] = 1;
    for (auto c : s) {
        nd.add(c-'0');
        int k = nd.encode();
        ans += cnt[k];
        cnt[k] += 1;
    }
    cout << ans << "\n";
}

signed main() {
    cin.tie(0)->sync_with_stdio(0);
    int t = 1;
    while (t--) solve();
    return 0;
}

标签:子串,node,cnt,SS,rep,abc295D,nd,int
From: https://www.cnblogs.com/chenfy27/p/18059720

相关文章

  • 深入理解与应用CSS clip-path 属性
    clip-pathclip-path是什么clip-path是一个CSS属性,允许开发者创建一个剪切区域,从而决定元素的哪些部分可见,哪些部分会被隐藏。通过定义这个剪切路径(clippingpath),您可以创造出非矩形的裁剪形状,使元素内容按特定的几何形状展示。clip-path的工作原理clip-path属性通过定义......
  • java使用ssh通道连接mysql
    添加依赖<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version></dependency>添加配置importcom.jcraft.jsch.JSch;......
  • css样式属性 使用汇总,补齐前端短板
    ---------------index.css常用网站css样式属性使用汇总1-------------/*先删除默认的内外边距*/*{margin:0;padding:0;}body{background-color:#fafafa;height:2000px;}li{list-style:none;/*取消li的符号*/}/*顶部导航栏开......
  • 3DSSD
    PDF:https://arxiv.org/abs/2002.10187CODE:https://github.com/dvlab-research/3DSSD一、大体内容3DSSD是基于点的单阶段3D目标检测器,其提出的动机主要是基于体素的方法(如VoxelNet、PointPillar)在转换体素的时候会丢失信息,而基于点的目标检测方法大都是两阶段方法(如:PointRCN......
  • [转]mkcert 使用指南:如何快速创建自签名 SSL 证书
    原文地址:mkcert使用指南:如何快速创建自签名SSL证书-知乎我们平时在本地开发时,有时会要求通过HTTPS请求来访问。一个通用的做法是用OpenSSL生成自签证书,然后对Web服务进行配置。但OpenSSL的命令比较繁琐,参数也比较复杂,用起来不够方便。于是我找到了一个替代方案:mkce......
  • SSH
    ubuntu配置ssh1、查看ssh服务的开启状态ps-e|grepssh2、如果终端没有返回sshd,则需安装ssh-serversudoapt-getinstallopenssh-server3、启动服务sudo/etc/init.d/sshstart现在查看ssh服务状态就有sshd了!......
  • 分类器——高斯混合模型/Gaussian-Mixture-Models(GMM)之图像分割
    图像分割之高斯混合模型使用GMM的步骤如下:首先,GMM由create_class_gmm创建。然后,通过add_sample_class_gmm添加训练向量,然后可以使用write_samples_class_gmm将它们写入磁盘。通过train_class_gmm确定分类器中心参数(如上定义)。此外,它们可以与write_class_gmm一起保存,以便以后......
  • sshpass的离线安装与卸载
    sshpass的离线安装与卸载一.安装1.解压安装tar-zxvfsshpass-1.05.tar.gzcdsshpass-1.06./configure  #需要安装gcc环境makemakeinstall 2.验证安装成功 sshpass-V 二.卸载cdsshpass-1.05/makeuninstallmakeclean   ......
  • Android hexedit toybox tcsetattr /dev/pts/0: Permission denied
    cas:/$/data/local/tmp/toybox-aarch64hexedit/data/local/tmp/tree.statichexedit:tcsetattr/dev/pts/0:Permissiondenied 好像是不能用tcsetattr,selinux会拒绝 cas:/$ls-l/dev/ptsls:/dev/pts:Permissiondenied https://blog.zhanghai.me/fixing-line-e......
  • Spring反序列化失败 Type definition error: [simple type, class xxx.xxx.xxx]
    也许更好的阅读体验Typedefinitionerror:[simpletype,classcom.elm.po.CommonResult];nestedexceptioniscom.fasterxml.jackson.databind.exc.InvalidDefinitionException:Cannotconstructinstanceofcom.elm.po.CommonResult(noCreators,likedefaultconstru......