<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Manacher 做題記錄

      CF1827C

      此題要求 \(S\) 中美麗子串的數量。考慮枚舉每個美麗子串的起始點為 \(i\),因為大回文串可以分解成小回文串,所以提前處理記錄以每個點 \(i\) 為起點的最小回文串大小為 \(nxt_i\)。然后以 \(i\) 為起點擴展到 \(i+nxt_i\),然后遞歸處理到 \(i > n\) 后返回回文串數量 \(Ans_i\) 。答案即為 \(\sum\limits_{i=1}^{n} Ans_i\)。因為最多可能有 \(n^2\) 個美麗子串,所以要記憶化處理保證復雜度為 \(O(n)\)

      int dfs(int j){
      	if(j>n*2) return 0;
      	if(ans[j]!=0) return ans[j];
      	ans[j]=dfs(j+nxt[j]+2)+1;
      	return ans[j];
      }
      

      nxt數組計算過程:

      void manacher(){
      	int l=0,r=-1,cnt=0,sum=0;
      	for(int i=1;i<=2*n;i+=2){
      		if(i>r){
      			for(int j=i;j<=n*2;j++){
      				if(i*2-j<0) break;
      				if(s[i*2-j]==s[j]){
      					nxt[i*2-j]=min(nxt[i*2-j],j*2-i*2);
      					pre[j]=min(pre[j],j*2-i*2);
      					d2[i]=j-i;
      				}
      				else break;
      			}
      			if(i+d2[i]>=r){
      				r=i+d2[i];
      				l=i-d2[i];
      				cnt=i;
      			}
      		}
      		else{
      			d2[i]=min(d2[cnt*2-i],r-i);
      			if(cnt*2-i+1-pre[cnt*2-i+1]>l) nxt[i-1]=min(pre[cnt*2-i+1],nxt[i-1]);
      			int tmp=i+min({d2[i],i-cnt,i-sum}); //復雜度瓶頸,最優性減枝
      			for(int j=i+1;j<=tmp;j+=2){
      				nxt[i*2-j]=pre[cnt*2+j-i*2];
      				pre[j]=nxt[cnt*2-j];
      			}
      			for(int j=i+d2[i];j<=n*2;j++){
      				if(i*2-j<0) break;
      				if(s[i*2-j]==s[j]){
      					nxt[i*2-j]=min(nxt[i*2-j],j*2-i*2);
      					pre[j]=min(pre[j],j*2-i*2);
      					d2[i]=j-i;
      				}
      				else break;
      			}
      			if(d2[i]>=i-cnt) sum=i;
      			if(i+d2[i]>=r){ //復雜度瓶頸,靠更新左端點優化計算
      				r=i+d2[i];
      				l=i-d2[i];
      				cnt=i;
      			}
      		}
      	}
      }
      

      整體代碼

      posted @ 2025-08-17 15:30  allenyuan9038074  閱讀(16)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费人成网上在线观看网址| 国产农村老熟女乱子综合| 成年女人碰碰碰视频播放| 欧美综合自拍亚洲综合图| 成人免费无码av| 国产成人综合亚洲第一区| 亚洲情综合五月天| 色偷偷www.8888在线观看| 又大又紧又粉嫩18p少妇| 欧美高清狂热视频60一70| 精品一区二区三人妻视频| 国产丰满乱子伦午夜福利| 色吊丝二区三区中文写幕| 国产免费无遮挡吸奶头视频| 日韩精品国产二区三区| 午夜大尺度福利视频一区| 国产一二三区在线| 少妇人妻av毛片在线看| 国产一区二区不卡自拍| 天天狠天天透天天伊人| 日本一区二区精品色超碰| 日产国产一区二区不卡| 午夜国产小视频| 久久久久无码中| 中文字幕一区二区久久综合| 国内精品久久人妻无码不卡| 天天爽夜夜爱| 国产伦精区二区三区视频| 777久久精品一区二区三区无码| 午夜毛片不卡免费观看视频| 亚洲精品国产av成拍色拍个| 伊人热热久久原色播放WWW| 上栗县| 国产麻豆放荡av激情演绎| 一区二区福利在线视频| 免费无码av片在线观看中文| 日韩人妻少妇一区二区三区| 亚洲av成人免费在线| av一本久道久久波多野结衣| 亚洲码与欧洲码区别入口| 午夜av高清在线观看|