codeforces 519D D. A and B and Interesting Substrings(hash+dp)
2015-08-14 18:27
323 查看
题目链接:
codeforces 519D题目大意:
给出一个字符串,给出每个字母的权值,求字符串的子串中首尾相等,除去首尾字母的权值和为0的数量。题目分析:
从前到后扫描字符串,计算前缀和,每次将前缀和Hash,然后每次查询与当前位字母相同的前缀和与当前前缀和相等的前缀的数量,间接地计算出字符串的数量。AC代码:
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <map> #define M 27 #define N 100007 using namespace std; typedef long long LL; typedef map<LL,LL> Dic; Dic dic[M]; int a[M]; char s ; int main ( ) { for ( int i = 0 ; i < 26 ; i++ ) { dic[i].clear(); scanf ( "%d" , &a[i] ); } scanf ("%s" , s ); int n = strlen ( s ); LL sum = 0; LL ans = 0; for ( int i = 0; i < n ; i++ ) { int x = s[i]-'a'; LL y = dic[x][sum]; sum += a[x]; ans += y; dic[x][sum]++; } printf ( "%I64d\n" , ans ); }
相关文章推荐
- 开园啦。。。
- orbis 链接 .a的问题
- django提交post请求
- MFC调用vlc动态库libvlc.dll实现简单播放器 中文路径处理
- phpDocumentor学习使用记录
- rumtime记录
- phpDocumentor学习使用记录
- windows linux hosts文件的配置,开发项目中域名跳转等。
- 数据中心分解实验(五)--abricPath
- Android网络编程之UrlConnection【实例解析】
- 前端小记
- 在AWS上为1.25亿用户实现移动应用个性化
- 费马小定理 素数判定 蒙哥马利算法
- 第三周星期五
- QToolbutton实现图标和文字居中,qss
- 【Jquery】prop与attr的区别
- Android蓝牙聊天程序的扩展开发(基于Google Sample,类QQ设计)
- oracle导出blob,clob出错的问题
- android布局margin和padding差异!
- 视图的URL配置,找不到我设置的第一个Page