雜湊和雜湊表 Antisymmetry

2022-09-18 13:27:14 字數 1192 閱讀 7176

時間限制: 1 sec  記憶體限制: 128 mb

提交: 36  解決: 12

[提交] [狀態] [討論版] [命題人:admin]

題目描述

對於乙個0/1字串,如果將這個字串0和1取反後,再將整個串反過來和原串一樣,就稱作「反對稱」字串。比如00001111和010101就是反對稱的,而1001就不是。

現在給出乙個長度為n的0/1字串,求它有多少個子串是反對稱的,注意這裡相同的子串出現在不同的位置會被重複計算。

輸入第一行乙個正整數n。

第二行乙個長度為n的0/1字串。

輸出一行乙個整數,表示原串的反對稱子串個數。

複製樣例資料

8

11001011

樣例輸出
7

提示

對於100%的資料,1≤n≤500000。

思路:顯然符合條件的字串長度為偶數,否則中間那位取反後不可能與原串相同。

列舉前半部分最後乙個位置(1~n-1),二分長度hash即可。

#include#include

#include

#include

#include

#define ull unsigned long long;

#define rep(i, a, b) for(int i = (a); i <= (b); ++ i)

#define rep(j, a, b) for(int j = (a); j <= (b); ++ j)

#define per(i, a, b) for(int i = (a); i >= (b); -- i)

const

int maxn = 5e5 + 5

;using

namespace

std;

char

str[maxn];

intn, a[maxn], b[maxn], gt;

long

long

tot;

int ha[maxn], hb[maxn], base

[maxn];

int funa(int l, int

r) int funb(int l, int

r) int

main()

tot +=gt;

}cout

}

雜湊和雜湊表 門票

時間限制 1 sec 記憶體限制 128 mb 提交 26 解決 2 提交 狀態 討論版 命題人 admin 題目描述 rpk要帶msh去乙個更加神秘的地方!rpk帶著msh穿過廣場,在第1618塊磚上按下了乙個按鈕,在一面牆上隨即出現了乙個把手。rpk握住把手,開啟了一扇石質大門。他們穿過悠長而芬...

Hash和雜湊 雜湊 表

hash又稱為雜湊,是把任意長度的輸入 又叫做預對映pre image 通過雜湊演算法變成固定長度的輸出,該輸出就是雜湊值。hash演算法還有乙個特點,就是很難找到逆向規律。在同一函式下,如果兩個雜湊值是不相同的,那麼這兩個雜湊值的原始輸入也是不同的。hash演算法又被稱為雜湊演算法。雖然被稱為演算...

雜湊表 雜湊表

一 定義 雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。雜湊表的做法其實很簡單,就是把key通過乙個固定的演算法函式...