当前位置: 首页 > news >正文

给自己的家乡建设网站wordpress底部友情链接

给自己的家乡建设网站,wordpress底部友情链接,临漳+网站建设,学校英文版网站建设后缀自动机#xff0c;处理所有子串。 注意#xff1a;nq节点的建立#xff0c;是因为新加了一个字母使原本为一个状态的东西必须分为两个状态#xff0c;例如ba到baa#xff0c;a的出现次数变多#xff0c;a状态与ba状态分离。baa的新pnt不能是ba#xff0c;因为空节点…后缀自动机处理所有子串。 注意nq节点的建立是因为新加了一个字母使原本为一个状态的东西必须分为两个状态例如ba到baaa的出现次数变多a状态与ba状态分离。baa的新pnt不能是ba因为空节点可以通过两种方式到达ba状态它的pnt的状态就不唯一了。换句话说不能由截断前缀得到不符合的节点的后缀与儿子相同则跳指针时会出现问题。所以建立节点把是节点的状态分离出来让的。因为节点比节点短所以的的。 每个节点的转移他们的都应该具备 题目大意 给定一个字符串求每个长度的子串出现次数的最大值 tyvj 4123用pnt树size从大往小更新用并查集维护是否更新过 模板代码 #includeiostream #includecstdio #includecstring #includealgorithm using namespace std; #define maxn 200020struct node{int next[26],val;int pnt; }sam[maxn * 2]; struct node2{int sz,num;bool operator (const node2 a) const{return sz a.sz; } }data[maxn * 2]; char a[maxn]; int n,tot,last,root; int fa[maxn]; int num[maxn],ans[maxn],b[maxn];inline void add(int x){int np tot,p last;sam[np].val sam[p].val 1;data[np].sz 1;while ( !sam[p].next[x] p ) sam[p].next[x] np, p sam[p].pnt;int q sam[p].next[x];if ( !q ) sam[np].pnt root,sam[root].next[x] np;else if ( q sam[p].val 1 sam[q].val ) sam[np].pnt q;else{int nq tot;sam[nq].val sam[p].val 1;sam[nq].pnt sam[q].pnt;sam[np].pnt sam[q].pnt nq;memcpy(sam[nq].next,sam[q].next,sizeof(sam[q].next));while ( p sam[p].next[x] q ) sam[p].next[x] nq , p sam[p].pnt;if ( sam[p].next[x] q ) sam[p].next[x] nq; //特判p跳到根后的情况}last np; } inline void getsize(){for (int i 0 ; i tot ; i) num[sam[i].val];for (int i 1 ; i n ; i) num[i] num[i - 1]; //从小到大for (int i tot ; i 0 ; i--) b[--num[sam[i].val]] i;for (int i tot ; i 0 ; i--) if ( sam[b[i]].pnt ! b[i] ) data[sam[b[i]].pnt].sz data[b[i]].sz; } inline int getfa(int x){if ( x fa[x] ) return x;return fa[x] getfa(fa[x]); } int main(){scanf(%s,a 1);n (int) strlen(a 1);for (int i 1 ; i n ; i) add(a[i] - a);getsize();for (int i 1 ; i n 2 ; i) fa[i] i;for (int i 1 ; i tot ; i) data[i].num i;sort(data 1,data tot 1);for (int i 1 ; i tot ; i){int x data[i].num;for (int j getfa(sam[sam[x].pnt].val 1) ; j sam[x].val ; j getfa(j 1)){ans[j] max(data[i].sz,ans[j]);fa[j] fa[j 1];}}for (int i 1 ; i n ; i) printf(%d\n,ans[i]);return 0; }转载于:https://www.cnblogs.com/zqq123/p/5201312.html
http://www.zqtcl.cn/news/404245/

相关文章:

  • 定制型网站建设推广宁河网站建设
  • 主流网站开发语言有哪些电子邮件营销
  • 扫描二维码进入公司网站怎样做在万网上域名了怎么做网站
  • 销售型网站设计怎么做网站广告位
  • 网站推广的方法ppt购物网站logo
  • 网站关键词分割wordpress为展示的作品投票
  • 建立网站 域名 服务器吗wordpress超链接出错
  • 外贸开发网站建设注册会计师协会
  • 莆田建设网站dw网页设计作品及源码
  • 360免费建站视频淘宝客的网站怎么做
  • 四川自助seo建站短视频推广计划
  • 网站建设案例的公司黄冈网站建设公司
  • 做淘客网站需要营业执照吗制作网站公
  • 手机网站开发的目的鲁班设计远程工作
  • 宿迁网站建设要多少钱高密市住房和城乡建设局网站
  • 咸阳网站建设公司哪家好wordpress访客ip记录
  • 厦门建设银行网站那个网站做效果图电脑配置
  • 人才网站建设医院网站建设的好处
  • 房屋装修网站模板html5做网站
  • 网站建设需要的硬件网站建设知名公司排名
  • 绥化网站建设私自搭建vps犯法吗
  • 建设专业网站哪家比较好小程序源码是什么意思
  • 网站设计一般包括什么给公司做网站数据分析
  • 网站根目录在哪里1024cctvcom戊人影祝
  • wordpress转发微信南宁seo企业优化
  • 红旗渠建设集团网站昭通网络推广
  • 海陵区建设局网站计算机网站建设考试试卷
  • 佛山做网站3lue网站开发招标网
  • 粘贴以下代码到网站首页代码的与标签之间渭南软件开发
  • 企业网站建设必要性上海网站建设报价表