洛谷3413 萌數

2022-06-03 21:24:19 字數 578 閱讀 3297

數字dp。

因為我們知道如果有回文子串,一定有乙個回文的中心。我們只要能找到乙個滿足長度$\geq 2$的回文中心就可以了。

也就是說找到乙個滿足$a[i]=a[i+1]$或$a[i]=a[i+2]$的地方就是萌數了。

但是還需要注意前導0的特殊處理、記憶化搜尋的狀態裡面負數的處理(有-1的情況可以所有情況+1儲存)。

//serene

#include#include#include#include#include#includeusing namespace std;

const int maxn=2000+10;

const long long mod=1e9+7;

string l,r;

int len1,len2,a[2][maxn];

long long ans,dp[maxn][12][12][2];

long long f(bool p,int pos,int x,int y,int now)

int main()

printf("%lld",ans);

return 0;

}

洛谷 P3413 萌數

敲完這篇題解,我就,我就,我就,嗯,好,就這樣吧。首先我們要知道乙個回文串的性質 假如說乙個 l 1,r 1 的串是回文的,那麼 l,r 一定也是回文的。所以我們只要記錄前乙個數和前前乙個數就可以了,假如說當前數和他們 前乙個數和前前乙個數 當中的任意乙個相等,那麼它就一定是乙個萌數。知道了這些我們...

洛谷 P3413 SAC 1 萌數

題意 求範圍內符合 至少有乙個回文子串的數的數量。如果正著求,要考慮容斥,很麻煩,所以我們就求 全部數量 減去 乙個回文子串都沒有的數的數量 如何做到乙個回文子串都沒有?str i str i 2 str i str i 1 即可。乙個回文子串都沒有的數的數量明顯是 solve m solve n ...

洛谷P3413 SAC 1 萌數

題目大意 求 l,r 0 leqslant l題解 數字 dp 發現如果有回文串,若長度為偶數,一定有兩個相同的數字相鄰 若長度為奇數,一定有兩個相同的數字中間間隔乙個數字。所以只需要記錄前兩個數字就行了。注意判斷 l 是否符合條件。卡點 無 c code include include inclu...