計蒜客T3103 特殊關係

2021-10-09 12:46:04 字數 1472 閱讀 7373

題目描述:

蒜頭君有很多組字串形如 x,y, xx 的長度不確定,而 yy 的長度是 22。

如果有兩組字串 a , ba,b,例如 a =a= 和 b =b= ,aa 組的第二個字串是 bb 組第乙個字串的開頭,而 bb 組的第二個字串是 aa 組第乙個字串的開頭。這是乙個非常有趣的現象,蒜頭君會認為這兩組字串 a,ba,b 存在一種特殊關係。

但是蒜頭君又覺得例如 a =a= , b =b= 這樣兩組字串是沒有特殊關係的,因為它們的第二個字串相同。

現在蒜頭君有 nn 組字串,他想要知道這些字串中有多少組存在特殊關係。

輸入格式

第一行輸入乙個整數 nn,表示有 nn 組字串;

接下來 nn 行,每行輸入兩個字串 x,yx,y(均為大寫字母)。

注意:有可能有多個城市叫一樣的名字,但是它們肯定不屬於同乙個省。

注意可能存在相同的 xx 字串,但保證對於相同的 xx 所對應的字串 yy 一定不同

輸出格式

輸出這些字串中有多少組存在特殊關係。

資料範圍

對於 100% 的資料,1≤n≤200000,2≤∣x∣,∣y∣≤10,輸入保證所有字串都由大寫字母構成

樣例輸入

5jisuanke su

suanke ji

jisuan su

jisk sk

sksk sk

樣例輸出

2在練習的時候卡了很久,腦子不好使不知道怎麼用map來儲存。本題y固定為2,可以直接採用4位26進製的hash,直接將字串a的前兩位與字串b連線起來,然後hash維護兩個陣列,乙個陣列h1表示原來的數,另乙個陣列h2用來表示翻轉後的數,將兩者的乘積相加,最後除以2輸出即為答案。

#include

#include

#include

#include

using

namespace std;

#define mp make_pair

const

int maxn=

2e5+5;

int n;

int h1[26*

26*26*

27], h2[26*

26*26*

27];char s1[20]

,s2[20]

;int

main()

}long

long ans =0;

for(

int i =

0; i <26*

26*26*

27; i++

) cout << ans /

2<< endl;

return0;

}

計蒜客 特殊質數

7331是乙個特殊的質數,因為我們去掉個位得到的733是乙個質數 再次去掉個位得到的73又是乙個質數 再去掉個位後得到的7依然是乙個質數。對於形似這種的質數,我們稱呼它為特殊質數。寫乙個程式對給定的待求特殊質數的位數 n 1 n 8 求出所有對應位數的特殊質數 注意 數字1不被看作乙個質數 輸入包括...

計蒜客t36352 魔法

肯定我要佔滿所有的葉子結點,否則以乙個葉子節點建樹的時候你選的所有點就都在一棵子樹裡,也就不符合要求。反過來,選擇了所有葉子節點,可以證明它是可行的,所以葉子節點構成的集合滿足要求而且最小。如果k 0 k 0k 0直接求出度為1 11的點的數目就好了 如果k 1 k 1k 1,列舉刪哪條邊,我用 x...

紅與黑 計蒜客 T1211

題目鏈結 典型的深搜題,基礎題。蒜廠有一間長方形的房子,地上鋪了紅色 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。輸入格式第一行是兩個整數 w和 h,分別表示 x 方向和 y 方向瓷磚的數量。w 和 h 都不超過 ...