日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ 3555: [Ctsc2014]企鹅QQ

發布時間:2023/12/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 3555: [Ctsc2014]企鹅QQ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

似乎大家全部都用的是hash?那我講一個不用hash的做法吧。

首先考慮只有一位不同的是哪一位,那么這一位前面的位上的字符一定是全部相同,后面的字符也是全部相同。首先考慮后面的字符。

我們對n個串的反串建trie樹,這樣,每一個后綴就對應一個trie樹上的唯一一個節點,不同的后綴對應的就是不同的節點,這樣就不用hash表了。

但是字符集很大,用trie空間太大,那么就用鄰接表或map存邊就好了。

然后就是令前綴全部相同。那么我們從左到右枚舉每一位,按照當前位的字符進行分治,當前位不同的就通過后綴計算貢獻,相同的就放在一起,繼續分治即可。

然后就跑的飛快,目前是BZOJ rk2,Luogu rk1。

實現的時候有很多細節,具體請參考代碼。

#include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<cctype> #define qmin(x,y) (x=min(x,y)) #define qmax(x,y) (x=max(x,y)) #define vi vector<int> #define vit vector<int>::iterator #define pir pair<int,int> #define fr first #define sc second #define mp(x,y) make_pair(x,y) #define rsort(x,y) sort(x,y),reverse(x,y) using namespace std;inline char gc() { // static char buf[100000],*p1,*p2; // return (p1==p2)&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;return getchar(); }template<class T> int read(T &ans) {ans=0;char ch=gc();T f=1;while(!isdigit(ch)) {if(ch==EOF) return -1;if(ch=='-') f=-1;ch=gc();}while(isdigit(ch))ans=ans*10+ch-'0',ch=gc();ans*=f;return 1; }template<class T1,class T2> int read(T1 &a,T2 &b) {return read(a)!=EOF&&read(b)!=EOF?2:EOF; }template<class T1,class T2,class T3> int read(T1 &a,T2 &b,T3 &c) {return read(a,b)!=EOF&&read(c)!=EOF?3:EOF; }typedef long long ll; const int Maxn=6100000; const int Maxm=31000; const int Maxl=210; const int inf=0x3f3f3f3f;int to[Maxn],nxt[Maxn],first[Maxn],tot=1; char w[Maxn],s[Maxm][Maxl]; int p[Maxm][Maxl],n,len,x,po[Maxl][Maxl],qq[Maxl],bj[Maxl],ans; int a[Maxm],siz[Maxl],b[Maxm],tn[Maxn],cnt=1; queue<int> q[Maxl];inline void add(int u,int v,char wi) {to[tot]=v;nxt[tot]=first[u];w[tot]=wi;first[u]=tot++; }void solve(int l,int r,int cur) {if(l>r) return ;if(cur==len) return ;int cnt=0;for(int i=l;i<=r;i++) {int x=s[a[i]][cur];q[x].push(a[i]);siz[x]++;if(!bj[x]) qq[++cnt]=x,bj[x]=1;}if(cnt==1) {for(int i=1;i<=cnt;i++) bj[qq[i]]=siz[qq[i]]=0;while(!q[qq[1]].empty()) q[qq[1]].pop();solve(l,r,cur+1);}else {int sxz,zhy=0;for(int i=1;i<=cnt;i++) {if(siz[qq[i]]>zhy) {sxz=i;zhy=siz[qq[i]];}}swap(qq[cnt],qq[sxz]);int las=l;po[cur][0]=las;for(int i=1;i<cnt;i++) {int x=qq[i],num=0;while(!q[x].empty()) {int now=q[x].front();q[x].pop();b[++num]=p[now][cur+1];ans+=tn[b[num]];a[las++]=now;}while(num) tn[b[num--]]++;po[cur][i]=las;}while(!q[qq[cnt]].empty()) {int now=q[qq[cnt]].front();q[qq[cnt]].pop();ans+=tn[p[now][cur+1]];a[las++]=now;} po[cur][cnt]=las;for(int i=l;i<po[cur][cnt-1];i++) tn[p[a[i]][cur+1]]--;for(int i=1;i<=cnt;i++) bj[qq[i]]=siz[qq[i]]=0;for(int i=1;i<=cnt;i++)solve(po[cur][i-1],po[cur][i]-1,cur+1);} }signed main() { // freopen("test.in","r",stdin);read(n,len,x);for(int i=1;i<=n;i++) {scanf("%s",s[i]);int now=1;for(int j=len-1;j>=0;j--) {int temp=0;for(int k=first[now];k;k=nxt[k])if(w[k]==s[i][j]) {temp=to[k];break;}if(!temp) add(now,++cnt,s[i][j]),temp=cnt;now=temp;p[i][j]=now;}}for(int i=1;i<=n;i++) a[i]=i;solve(1,n,0);printf("%d\n",ans);return 0; }

轉載于:https://www.cnblogs.com/shanxieng/p/10783697.html

總結

以上是生活随笔為你收集整理的BZOJ 3555: [Ctsc2014]企鹅QQ的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成年人的黄色片 | 亚洲黄色天堂 | 91一区二区在线观看 | 成人亚洲视频 | 男人添女人下部高潮视频 | 日韩免费毛片 | ,国产精品国产三级国产 | 青青视频在线播放 | 久久亚洲网 | 精品国产91乱码一区二区三区 | av站| 日韩高清在线观看一区 | 成人无遮挡| av天堂永久资源网 | 公交顶臀绿裙妇女配视频 | 黑丝久久 | 久久精品在这里 | 好吊妞在线观看 | 国产精品久久久久久久久久久久久 | 国语对白做受欧美 | 污夜影院| 青青草伊人网 | 欧美乱人伦 | 一区二区日韩在线观看 | 亚洲黄页 | 国内视频一区二区 | 亚洲美免无码中文字幕在线 | 午夜精品视频在线 | 国产免费内射又粗又爽密桃视频 | 亚洲五月激情 | 国产日韩欧美日韩大片 | 无码人妻精品一区二区50 | 淫视频网站| 精品无码久久久久国产 | 91精品国产福利在线观看 | 亚洲精品乱码久久久久久蜜桃动漫 | 欧美视频一区二区三区在线观看 | 久操视频网站 | 久久成人a毛片免费观看网站 | 婷婷综合色 | 少妇与公做了夜伦理 | 免费看片色 | 男生裸体视频 | 久热青草 | 久久久久久久国产精品视频 | 丁香婷婷网 | 欧美图片一区 | 国产精品成人免费视频 | 亚洲永久av | 久久在线精品视频 | 女人洗澡一级特黄毛片 | 中文字幕国产亚洲 | 69堂精品| 亚洲欧美激情另类 | 一级黄色片免费 | 在线免费观看日韩av | 韩国在线不卡 | 天天躁日日躁狠狠躁免费麻豆 | 怡红院成人在线 | 欧美激情免费 | 亚洲精品aa | 亚洲欧美激情视频 | 女同激情久久av久久 | 中国在线观看视频高清免费 | 高清视频在线免费观看 | 激情欧美一区二区免费视频 | 精品亚洲乱码一区二区 | 久操视频在线观看免费 | av大全在线播放 | 自拍偷拍视频网站 | 中文字幕色图 | avtt一区| 日本va在线观看 | 欧美国产精品久久 | 成年人视频在线 | 日韩一级影片 | 国产精品性色 | 久久精品5 | 理论片国产 | 99视频导航 | 亚洲熟女少妇一区 | 日韩av无码一区二区三区不卡 | 亚洲美女网站 | 久久接色 | 91豆花视频 | 日韩欧美在线免费观看 | 国产又粗又猛又爽又黄视频 | 又色又爽又黄无遮挡的免费视频 | 精品久久久一区 | 免费在线观看视频 | 欧美在线色视频 | 蜜色视频 | 欧美理论在线观看 | 国产一级片免费 | 欧美性黄色 | 亚洲一区二区三区在线看 | 在线毛片网站 | 国产精品一区二区在线观看 | 97国产成人无码精品久久久 |