JZOJ 省選模擬 string

2021-10-03 21:43:47 字數 984 閱讀 2115

一行乙個整數表示答案。

sample input

樣例輸入:

3 3sample output

樣例輸出:

首先我們忽略重複的字串,定義 ƒ(n)表示長度為 n 的回文串,或由兩個回文串拼成的字串數量。那麼可以通過列舉第乙個回文串的長度(可以為 0)可以算出f(n)

但是正如剛才所說,會對如 abaaba 這樣的字串重複計算,即會被認為是乙個完整的字串,又會認為時兩個 aba 拼接而成。考慮有哪些字串會被重複計算。

不難發現,當乙個回文串是某個字串重複多次構成時,那麼這個字串就會被計算多 次,如 abaabaaba 這個字串會由 abaabaaba、aba 和 abaaba、abaaba 和 aba 這3 種情況計算 3 次。

進而可以發現,重複了 k 次的字串就會被重複計算 k 次,那麼定義 g(n)表示長度為n 的回文串,或者只有一種分割方案分割為兩個回文串的字串

那麼最後答案就可以通過 g 陣列得出

#include

#define n 200077

#define mod 998244353

#define ll long long

using

namespace std;

ll p[n]

,g[n]

,f[n]

,yjy,n;

intmain()

printf

("%lld"

,yjy)

;}

JZOJ 省選模擬 Moorio Kart

description 由於目前可供奶牛們使用的約會 並沒有給 farmer john 留下深刻印象,他決定推出乙個基於新匹配演算法的奶牛交友 該演算法可基於公牛和母牛間的共同興趣對公牛和母牛進行匹配。bessie 在尋找情人節 barn dance 的合作夥伴時,決定試用這個 在註冊賬戶之後,fj...

JZOJ 省選模擬 挖寶

description 有乙個挖寶遊戲,它在一棵 n 個點的樹上進行,寶藏埋在某個未知的點 每次挖掘乙個點 u,玩家得到的反饋資訊是乙個數值 d,表示 u 號點到 號點簡單路徑上的邊數。這個遊戲會進行 q 次,每次遊戲藏寶的位置不一定相同。你作為一名優秀的 er,對自己無比自信。你希望用最少的挖掘次...

JZOJ 省選模擬 死星(deathstar )

樣例 1 輸入 4 3b4 樣例 2 輸入 6 4af00 sample output 樣例 1 輸出 2樣例 2 輸出 三元環 可以直接列舉兩個點,利用 bitset 計算出第三個點有多少種可能。注意到乙個不合法的三元環等價於存在乙個出度為 2 的點,計算所有三元環內這樣的點數 之和即可,這樣更快...