题意: 已知26个小写字母有各自的权值(正,负,或0) 现在给出一个字符串,长度<=1e5 问这个字符串有多少个子串满足: 开头的字母和结尾的字母一样 字符串除了开头和结尾的字母外,其余的字母的权值和为0 本来是一道水题,一看就知道大体的思路了,结果硬是搞了一个多小时 先是用set,发现超时了,改为用map 思路: 1.我们先预处理这个字符串的权值的前缀和 sum[i]表示从字符串的起点到i的权值和 2.我们要找到的子串,设以l开头和r结尾,则有 str[r] == str[l] 和 sum[r…
题目链接:D. A and B and Interesting Substrings 题目大意 给定26个小写字母的权值,一共26个整数(有正有负). 给定一个小写字母组成的字符串(长度10^5),求有多少长度大于1的子串满足: 1)首尾字符相同. 2)除了首尾字符外,其他字符的权值和为0. 题目分析 使用STL Map.开26个Map,给每个字母开一个. 先求出权值的前缀和 Sum[] . 然后1到l枚举每一位字符,如果是a,那么 Ans += Map[a][Sum[i - 1]]; 然后 +…
题意 给出$26$个字母对应的权值和一个字符串 问满足以下条件的子串有多少 首尾字母相同 中间字母权值相加为0 Sol 我们要找到区间满足$sum[i] - sum[j] = 0$ $sum[i] = sum[j]$ 开$26$个map维护一下$sum$相等的子串就可以 /* */ #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<map…
D. A and B and Interesting Substrings time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output A and B are preparing themselves for programming contests. After several years of doing sports program…
A:http://codeforces.com/problemset/problem/519/A 水题没什么好说的. #include <iostream> #include <string.h> #include <stdio.h> #include <math.h> #include <algorithm> #include <queue> #define inf 0x3f3f3f3f using namespace std; ]…
传送门 D. A and B and Interesting Substrings time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output A and B are preparing themselves for programming contests. After several years of doing sports pro…
更新:文中示例代码直接从Joe的新版 Erlang 书中摘抄而来,其中模式匹配的代码有错误,现已纠正.应该用 := 匹配字段,而不是 => . 即将发布的 Erlang 17 最大变化之一包括新的数据结构 map 的引入.其他很多动态语言,都在语言层面原生地支持映射的数据结构,因此在写程序的时候随手需要表示一个类似对象结构这样的映射数据非常方便.Erlang 原来也有一个类似的结构,record,不过用起来不太方便,语法比较丑陋,“key”只能是原子,而且整个结构在定义了之后是固定的.当然,在标…
数据结构 Map 字典: 用来存储不重复key的 Hash结构.不同于集合(Set)的是,字典使用的是 [键,值] 的形式来存储数据的. JavaScript 的对应那个(Object:{}) 只能用字符串当做键.这给他的使用带来了很大的限制. var data1={a:"1"},data2={b:"2"},obj={}; obj[data1]=1; obj[data2]=2; console.log(obj); 1.创建一个 Map const map=new M…
/* 数据结构 Map */ /* * 字典:是用来存储不重复的key的hash结构.不同于集合(Set)的是,字典使用的是[键,值]的形式来储存数据的. *javaScript 的对象(Object:{})只能用字符串当作键.这给它的使用带来了很大的限制. *为了解决这个问题,Es6提供了Map数据结构.它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键.也就是说,Object结构提供了 “字符串-值”的对应,Map结构提供了“值-值”的对应,是…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>新型数据结构Map应用</title> </head>…