• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            巢穴

            about:blank

            P3274

            hash.同余.不過這里的同余不是普通意義上的同余.

            #include <iostream>
            #include 
            <fstream>
            using namespace std;
            //ifstream fin("1.txt");
            const int MAXN=100001;
            const int mod=99991;
            int n,k;
            int c[MAXN][30];
            int d[MAXN][30];
            int h[mod];
            int p[MAXN],len=0;
            int s[MAXN];
            int result=0;
            inline 
            int hashcode(const int id)
             
            {
                
            int s = 0;
                
            for(int i=0; i<k; i++)
                    s
            =((s<<2)+(d[id][i]>>4))^(d[id][i]<<10);
                 s 
            = s % mod;
                s 
            = s < 0 ? s + mod : s;
                
            return s;
             }



            void find_hash(int x,int id)
            {
              
            int f[30];
              
            bool ok=true;
              
            for (int i=0;i<k;i++)
              
            {
               
            if (i==0) f[i]=c[id][i]-c[p[x]][i];
               
            else
               
            {
                f[i]
            =c[id][i]-c[p[x]][i];
                
            if (f[i]!=f[i-1]||f[i]==0{ok=false;break;}
               }

              }

              
            if (ok)
              
            {
               
            if (result<id-p[x]) 
               
            {
               result
            =id-p[x];
               }

              }

              
            if (s[x]==-1)
              
            {
               len
            ++;
               s[x]
            =len;
               s[len]
            =-1;
               p[len]
            =id;
               
            return;
              }

              
            else
              
            {
               find_hash(s[x],id);
              }

            }

            void hash(int u,int id)
            {
                 
            if (h[u]==-1)
                 
            {
                  len
            ++;
                  h[u]
            =len;
                  s[len]
            =-1;
                  p[len]
            =id;
                  
            return;
                 }

                 find_hash(h[u],id);
            }

            int main()
            {
                cin
            >>n>>k;
               
            if (n==1{cout<<1<<endl;exit(0);}
                memset(h,
            -1,sizeof(h));
                memset(c,
            0,sizeof(c));
                
            for (int i=1;i<=n;i++)
                
            {
                 
            int x;
                 cin
            >>x;
                 
            int l=-1;
                 
            for (int j=0;j<k;j++)
                 
            {
                  
            int p=x%2;
                  l
            ++;
                  c[i][l]
            =c[i-1][l]+p;
                  x
            /=2;
                 }

                }

                
                memcpy(d,c,
            sizeof(c));
                
            for (int i=0;i<=n;i++)
                
            {
                 
            int max=MAXN;
                 
            for (int j=0;j<k;j++)
                 
            {
                     
            if (max>d[i][j]) max=d[i][j];
                 }

                 
            for (int j=0;j<k;j++)
                 
            {
                     d[i][j]
            -=max;
                 }

                 
            int u=hashcode(i);
                 
            //cout<<u<<endl;
                 hash(u,i);
                }

                
                
                cout
            <<result<<endl;
              
            //  system("pause");
                return 0;
            }

            posted on 2009-10-21 12:46 Vincent 閱讀(159) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構與算法

            久久精品成人免费国产片小草| 九九精品99久久久香蕉| 一本大道久久东京热无码AV| 伊人久久大香线蕉综合5g| 久久夜色精品国产噜噜麻豆 | 国产三级久久久精品麻豆三级| 久久精品无码一区二区三区| 久久综合成人网| 99久久无码一区人妻a黑| 欧美一级久久久久久久大| 久久久老熟女一区二区三区| 久久久久噜噜噜亚洲熟女综合 | 狠狠色丁香久久综合婷婷| 久久国产视屏| 久久国产亚洲高清观看| 亚洲精品99久久久久中文字幕| 久久婷婷国产综合精品| 伊人久久大香线蕉综合热线| 99国产精品久久久久久久成人热| 亚洲国产成人久久综合一区77| 99久久婷婷国产综合亚洲| 久久www免费人成看片| 久久久久国产一区二区三区| 久久国产精品99精品国产| 亚洲国产欧美国产综合久久| 久久影视国产亚洲| 久久久久99精品成人片牛牛影视| 久久青青草原综合伊人| 狠狠干狠狠久久| 成人久久久观看免费毛片| 精品综合久久久久久888蜜芽| 国产精品中文久久久久久久| 久久国产香蕉一区精品| 国产精品久久久久一区二区三区| 人妻少妇久久中文字幕 | 国产精品无码久久久久久| 亚洲精品国精品久久99热一| 一本久久a久久精品亚洲| 伊人色综合久久天天人手人婷| 国产毛片欧美毛片久久久| 久久久久波多野结衣高潮|