多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > BZOJ 2801 Poi2010 Beads Hash

BZOJ 2801 Poi2010 Beads Hash

來源:程序員人生   發布時間:2015-03-19 08:27:53 閱讀次數:2415次

題目大意:給定1個數字串,求所有的k滿足當將這個數字串從左到右分成大小為k的塊時不同的塊數量最多 反轉同構算1種

枚舉k,對每一個k將不同的串插入哈希表去重

反轉同構啥的每一個串的哈希值乘1下反串的哈希值就好了

時間復雜度O(n/1+n/2+...+n/n)=O(nlogn)

#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define M 200200 #define BASE 200191 #define MOD 999911657 using namespace std; int n,ans,a[M]; long long hash1[M],hash2[M],power[M]; int stack[M],top; namespace Hash_Table{ struct List{ int hash_value; bool flag; List *next; List(int _,List *__): hash_value(_),flag(false),next(__) {} }*head[BASE]; int tim[BASE],T; void Initialize() { ++T; } bool& Hash(int hash) { int pos=hash%BASE; if(tim[pos]!=T) tim[pos]=T,head[pos]=0x0; for(List *temp=head[pos];temp;temp=temp->next) if(temp->hash_value==hash) return temp->flag; return (head[pos]=new List(hash,head[pos]))->flag; } } int main() { using namespace Hash_Table; int i,j; cin>>n; for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) hash1[i]=(hash1[i⑴]*BASE+a[i])%MOD; for(i=n;i;i--) hash2[i]=(hash2[i+1]*BASE+a[i])%MOD; for(power[0]=1,i=1;i<=n;i++) power[i]=power[i⑴]*BASE%MOD; for(i=1;i<=n;i++) { int cnt=0; Initialize(); for(j=i;j<=n;j+=i) { int l=j-i+1,r=j; long long _hash1=(hash1[r]-hash1[l⑴]*power[r-l+1]%MOD+MOD)%MOD; long long _hash2=(hash2[l]-hash2[r+1]*power[r-l+1]%MOD+MOD)%MOD; bool &flag=Hash(_hash1*_hash2%MOD); if(!flag) ++cnt; flag=1; } if(cnt>ans) ans=cnt,top=0; if(cnt==ans) stack[++top]=i; } cout<<ans<<' '<<top<<endl; for(i=1;i<=top;i++) printf("%d%c",stack[i]," "[i==top]); return 0; }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 一二三四在线观看免费播放视频 | 一次性a爱片 | 亚洲精品一区二区三区在线看 | 国产精品三级一区二区 | 国产欧美日韩另类一区乌克兰 | 亚洲 欧美 小说 国产 图片 | 日韩淫片| 欧美综合国产精品日韩一 | 欧美色操| 久久亚洲精品永久网站 | 欧美一级在线观看视频 | 欧美美女xx | 日韩国产欧美在线观看一区二区 | 欧美午夜精品一区二区三区 | 天天狠狠弄夜夜狠狠躁·太爽了 | 国产亚洲精品中文带字幕21页 | 国产日韩欧美一区二区 | 精品一区二区三区在线观看l | 国产精品性视频免费播放 | 亚洲精品国产福利片 | 亚洲精品乱码久久久久久 | 亚洲综合精品一区二区三区中文 | 成人国产永久福利看片 | 亚洲日韩成人 | 国产三级理论片 | 在线18| 日韩拍拍拍 | 亚洲乱码一二三四区麻豆 | 激情小视频在线观看 | 国产视频xxx | 99精品欧美一区二区三区 | 国产精品久久成人影院 | 亚洲精品美女视频 | 免费看黄的网址 | 国产亚洲精品资源在线26u | 久久国产欧美另类久久久 | 狂野欧美性猛交xxxx乱大交 | 女人l8毛片a一级毛片免费 | 亚洲第一影视 | 欧美激情_区二区三区 | 青青国产成人精品视频 |