• <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)  編輯 收藏 引用 所屬分類: 數據結構與算法

            久久精品国产亚洲av麻豆小说| 久久91亚洲人成电影网站| 久久高潮一级毛片免费| 久久噜噜久久久精品66| 国产一区二区久久久| 亚洲色大成网站www久久九| 久久精品国产91久久综合麻豆自制 | 国产精品久久久久久吹潮| 日韩人妻无码精品久久久不卡| 99久久国产综合精品成人影院| 狠狠色丁香久久婷婷综合_中| 久久久国产精品福利免费| 亚洲欧美国产日韩综合久久| 久久亚洲高清观看| 日韩精品久久久久久免费| 亚洲国产成人久久一区WWW| 国内精品久久久久影院优| 久久久这里只有精品加勒比| 久久www免费人成精品香蕉| 国产精品美女久久久m| 久久免费看黄a级毛片| 久久九色综合九色99伊人| 色综合久久天天综合| 99久久人妻无码精品系列蜜桃| 久久AV高潮AV无码AV| 欧美日韩精品久久久久| 久久99精品国产麻豆不卡| 91久久精一区二区三区大全| 奇米综合四色77777久久| 久久久久亚洲AV成人网人人网站 | 中文字幕热久久久久久久| 久久一区二区三区免费| 久久久久久A亚洲欧洲AV冫| 久久综合久久综合久久| 久久精品国产影库免费看| 国内精品久久人妻互换| 国产产无码乱码精品久久鸭| 久久香综合精品久久伊人| 久久久久久国产精品免费无码| 久久狠狠高潮亚洲精品| 国产精品18久久久久久vr|