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

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

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

      字符串哈希板子

      class StringHash {

      public:
      int size;
      char *array;
      char *array_forward;
      unsigned long long* pre_base;
      unsigned long long* hash_array;
      unsigned long long* hash_array_forward;
      unsigned long long base = 12582917;

      StringHash(int size) : size(size) {
      array = new char[size + 1];
      pre_base = new unsigned long long[size + 1];
      hash_array = new unsigned long long[size + 1];
      std::memset(array, 0, size + 1);
      std::memset(pre_base, 0, size + 1);
      std::memset(hash_array, 0, size + 1);
      }

      ~StringHash() {
      delete[] array;
      delete[] hash_array;
      delete[] pre_base;
      delete[] array_forward;
      delete[] hash_array_forward;
      }

      void input(string t)
      {
      for(int i=0;i<t.size();i++)
      array[i+1]=t[i];
      }

      friend std::ostream& operator<<(std::ostream& os, const StringHash& customStruct) {
      os << customStruct.array+1; // Output the array to the output stream
      return os;
      }

      void init()
      {
      pre_base[0]=1;
      for(int i=1;i<=size;i++)
      pre_base[i]=base*pre_base[i-1];

      hash_array[0]=0;
      for(int i=1;i<=size;i++)
      {
      hash_array[i]=hash_array[i-1]*base;
      hash_array[i]+=array[i];
      }

      }

      void open_parall()
      {
      hash_array_forward = new unsigned long long[size + 1];
      array_forward = new char[size + 1];
      std::memset(hash_array_forward, 0, size + 1);
      std::memset(array_forward, 0, size + 1);
      for(int i=size;i>=1;i--)
      {
      array_forward[i]=array[size-i+1];
      }
      for(int i=1;i<=size;i++)
      {
      hash_array_forward[i]=hash_array_forward[i-1]*base;
      hash_array_forward[i]+=array_forward[i];
      }
      }

      unsigned long long getHash(int l,int r)
      {
      return hash_array[r]-hash_array[l-1]*pre_base[r-l+1];
      }

      bool is_paralld(int l,int r)
      {
      return getHash(l,r)==getHash(size-r+1,size-l+1,hash_array_forward);
      }

      unsigned long long getHash(int l,int r,unsigned long long* Hash)
      {
      return Hash[r]-Hash[l-1]*pre_base[r-l+1];
      }

      };
      posted @ 2024-04-07 22:51  摸魚選手LLF  閱讀(35)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 五月婷之久久综合丝袜美腿| 高青县| 亚洲一区二区三区四区三级视频| 日韩内射美女人妻一区二区三区| 撕开奶罩揉吮奶头视频| 久久天天躁夜夜躁狠狠85| 成人综合婷婷国产精品久久蜜臀| 无码一区二区波多野结衣播放搜索| 孕妇特级毛片ww无码内射| 丰满无码人妻热妇无码区| 中文字幕无码专区一VA亚洲V专| 午夜在线观看成人av| 国产精品久久毛片av大全日韩| 中文字幕国产精品自拍| 东京热人妻无码人av| 九九热在线观看视频免费| 狠狠五月深爱婷婷网| 亚洲中文精品一区二区| 亚洲a人片在线观看网址| 日韩一级伦理片一区二区| av在线网站手机播放| 久久人妻精品白浆国产| 国内免费视频成人精品| 亚洲欧美日韩人成在线播放| 丝袜欧美视频首页在线| 亚洲国产美女精品久久久| 久久精品国产99国产精品严洲| 性欧美大战久久久久久久 | 国产成人精品三级在线影院| 老师破女学生处特级毛ooo片| 国产首页一区二区不卡| 国产初高中生粉嫩无套第一次| 中文字幕 欧美日韩| 99久久亚洲综合精品成人网| 丰满人妻无码∧v区视频 | 欧美激情内射喷水高潮| 日韩国产精品中文字幕| 一本久道久久综合久久鬼色| 亚洲精品国产中文字幕| 亚洲国产精品人人做人人爱| 视频一区二区三区在线视频|