不难想到前缀和后按位hash,其实就是当成一个二进制数嘛

有hash的奇技淫巧,不%不知道...

第一次在bzoj跑到前十真是感天动地 神仙请屏蔽自带巨大常数的蒟蒻

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;
const int _=1e2;
const int maxn=3*1e5+_;
const int maxc=2*26+10;
const int hmod=8388607;LL Bin[maxn];
struct Hash
{int first[hmod],last[hmod],nxt[maxn];int len,c[maxn];LL d[maxn];void insert(LL k){int x=k&hmod;for(int i=first[x];i;i=nxt[i])if(d[i]==k){c[i]++;return ;}int now=++len;if(first[x]==0)first[x]=last[x]=now;else nxt[last[x]]=now,last[x]=now;d[now]=k,c[now]++;}   int getsum(LL k){int x=k&hmod;for(int i=first[x];i;i=nxt[i])if(d[i]==k)return c[i];return 0;}
}H;int n,a[maxn];bool v[maxc];
char ss[maxn];
int main()
{Bin[0]=1;for(int i=1;i<maxc;i++)Bin[i]=Bin[i-1]*2;scanf("%d%s",&n,ss+1);LL ans=0; LL sum=0;H.insert(sum);for(int i=1;i<=n;i++){if('a'<=ss[i]&&ss[i]<='z')a[i]=ss[i]-'a'+1;else a[i]=ss[i]-'A'+27;v[a[i]]=true;sum^=Bin[a[i]-1];ans=ans+H.getsum(sum);for(int j=1;j<=52;j++)if(v[j])ans=ans+H.getsum(sum^Bin[j-1]);H.insert(sum);}printf("%lld\n",ans);return 0;
}

转载于:https://www.cnblogs.com/AKCqhzdy/p/10493634.html

bzoj3067: Hyperdrome相关推荐

最新文章

  1. 漫画 | 产品经理的八大罪状
  2. 查看MYSQL数据库中所有用户及拥有权限
  3. 基于SSM实现校园失物招领系统
  4. opencv 直线检测笔记
  5. 菜鸟学SSH(八)——Hibernate对象的三种状态
  6. python 执行js_Python爬虫之记录一次下载验证码的尝试
  7. 【优化算法】果蝇算法(FOA)【含Matlab源码 1568期】
  8. (CODE)计算机视觉引论及数字成像系统
  9. a boo peek_|音译|171120*歌词ΓRed Velvet - Peek-A-Boo
  10. 房子装修选择自装,要敲墙如何在手机上申请住建局装修备案,几分钟即可拿到电子版备案通知书
  11. 电子实验室仪器使用大全
  12. vc 鼠标移动画直线
  13. java 中文大写金额_java编写的金额转中文大写
  14. 计算机淡蓝色ppt背景,计算机图表蓝色边框PPT模板.ppt
  15. StandardEngine[Catalina].StandardHost[localhost].StandardContext[]
  16. 20170704总结
  17. rust和gta5哪个吃配置_10款游戏体感嗨翻天的Steam大作,GTA5险无缘榜单,吃鸡仅排第三...
  18. 浏览器支持字体大小情况 以及 Chrome设置小于12px的字体的处理方案
  19. iOS---修改Xcode7建立的工程名称
  20. Android开发实战《智慧北京》——4.WebView的使用

热门文章

  1. c语言字符数组赋值_C语言关于结构体字符成员元素赋值的方法
  2. plaintextedit指定一行一行的高亮显示_RDKit | 基于RDKit的指定原子或键高亮
  3. linux cetos7关闭防火墙
  4. 高质量linux c编程指南,《linux c编程指南》学习手记5
  5. html网页跟随滚轮变化,实现桌面和移动浏览器元素随页面滚动产生动画
  6. python库怎么绘画_python中的turtle库(图形绘画库)
  7. linux php pdo dblib,PDO_DBLIB (MSSQL) on Ubuntu Server
  8. 【问题记录】阿里云轻量云服务器Ubuntu安装图形化桌面+远程连接
  9. 人脸对齐(四)--CLM算法及概率图模型改进
  10. 内存分配失败错误处理