洛谷P6754題解

2022-09-19 11:51:12 字數 834 閱讀 7444

本文同步更新於洛谷部落格

給定 \(a,b\),求區間 \([a,b]\) 中有多少個不含長度大於一的回文子串的數字串。

還是比較套路的數字 dp。我們傳五個引數 \(k,x,y,p,q\) 進入 dfs,分別表示列舉到第 \(k\) 位,前兩位為 \(x\),前一位為 \(y\),是否為前導 \(0\),以及這一位填的數有沒有限制,用 \(f\) 陣列記憶化即可。

下面來簡要說明一下如何判斷非回文串。不妨設回文串為 \(s_1s_2...s_n\),接下來進行分類討論:若 \(n\) 為奇數,令 \(m=\dfrac\),則 \(s_s_ms_\) 必為回文串;若 \(n\) 為偶數,令 \(m=\dfrac\),則 \(s_ms_\) 必為回文串。因此我們在填到第 \(x\) 位時,只需要判斷它與第 \(x-1\) 位和第 \(x-2\) 位是否相等即可。

我們把填前導 \(0\) 的位置設為 \(-1\),這樣會更加方便,但是 \(x\) 和 \(y\) 為 \(-1\) 的時候不能進行記憶化。

#includeusing namespace std;

#define ll long long

int len,a[20];

ll l,r,f[20][10][10];

ll dfs(int k,int x,int y,int p,int q)

if(!p&&!q&&x!=-1&&y!=-1)

f[k][x][y]=res;

return res;

}ll divide(ll x)

return dfs(len,-1,-1,1,1);

}int main()

洛谷 P1101 題解

這道題可以用深搜 回溯 來寫,相信大部分人都是這麼想的,但是有些人可能在一些地方饒了半天,所以這裡就貼一下我的思路,個人覺得自己的很好懂,除了tx和ty那裡,但是tx和ty的那種用法對於輸出路徑的題目一般很實用 這個算是比較簡單的吧,題目裡給出了具體要找的字串,我們要做的就是對它進行8個方向的搜尋,...

洛谷 P1169 題解

請你在乙個黑白矩陣中選出乙個長方形 含正方形 和正方形的子矩陣,使得所有相鄰的點顏色不一樣。矩陣大小 兩條邊都 2000 2000 2 000輸入 3 31 0 1 0 1 0 1 0 0輸出4 6解釋給定矩陣 正方形 長方形 我的控制台是萌萌噠 ffc0cb粉色 乙個小技巧 如果您的控制台是像我的...

題解 洛谷 P3332

題目描述 權值線段樹套線段樹板子題 首先觀察題目,判斷為二維偏序問題 操作1為區間修改,所以一定是外部線段樹維護權值,內部線段樹維護所在區間,否則時間複雜度 qwq 為方便查詢,雜湊時我採用雜湊每個數的相反數的方法將求第k大轉換為求第k小 詢問可以直接想到的做法就是二分答案,查詢1 ans在區間內的...