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

简历怎么制作网站房屋装修网

简历怎么制作网站,房屋装修网,房城乡建设部门户网站,徐州网正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId1600 题目大意 给出一个字符串sss#xff0c;每次在最后插入一个字符后求它的所有分别子串构出的failfailfail树的深度和。 1≤Q≤1051\leq Q\leq 10^51≤Q≤105 解题思路 考虑两个相等的子串长度为le…正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId1600 题目大意 给出一个字符串sss每次在最后插入一个字符后求它的所有分别子串构出的failfailfail树的深度和。 1≤Q≤1051\leq Q\leq 10^51≤Q≤105 解题思路 考虑两个相等的子串长度为lenlenlen那么以后面那个子串末尾结尾的failfailfail有lenlenlen种左端点的情况是指向前面那个子串的。 新插入后所有串的后缀都是新的子串考虑如何统计这些串的答案首先不考虑最后一个位置那么深度和就是前面那次新加的深度和。现在只需要计算新插入那个字符在这nnn个串中的贡献我们可以找出所有和这些串的所有后缀相同的子串都会产生贡献这个可以用SAMSAMSAM统计。 所以可以考虑先把完整的串的SAMSAMSAM建出来再考虑做法每次插入一个字符串的时候先查询它在parentsparentsparents树上到根的路径的边权乘上边的长度和然后再向这条路径上每条边的权值加一。 注意到要路径加权求和所以要加一个树剖就可以了 时间复杂度O(nlog⁡2n)O(n\log^2 n)O(nlog2n) code #includecstdio #includecstring #includealgorithm #define ll long long using namespace std; const int N4e510,P1e97; struct node{int to,next; }a[N]; int n,cnt,last,tot,dfc,p[N],ls[N]; int siz[N],son[N],top[N],dfn[N],rfn[N]; int fa[N],ch[N][26];ll len[N]; char s[N];bool v[N]; struct SegTree{ll w[N2],lazy[N2];void Downdata(int x,int L,int R){if(!lazy[x])return;int mid(LR)1;w[x*2](w[x*2]lazy[x]*(len[dfn[mid]]-len[dfn[L-1]]))%P;w[x*21](w[x*21]lazy[x]*(len[dfn[R]]-len[dfn[mid]]))%P;lazy[x*2]lazy[x];lazy[x*21]lazy[x];lazy[x]0;return;}void Change(int x,int L,int R,int l,int r){if(LlRr){(w[x]len[dfn[R]]-len[dfn[L-1]])%P;lazy[x];return;}int mid(LR)1;Downdata(x,L,R);if(rmid)Change(x*2,L,mid,l,r);else if(lmid) Change(x*21,mid1,R,l,r);else Change(x*2,L,mid,l,mid),Change(x*21,mid1,R,mid1,r);w[x](w[x*2]w[x*21]);return;}ll Ask(int x,int L,int R,int l,int r){if(LlRr)return w[x];int mid(LR)1;Downdata(x,L,R);if(rmid)return Ask(x*2,L,mid,l,r);if(lmid)return Ask(x*21,mid1,R,l,r);return (Ask(x*2,L,mid,l,mid)Ask(x*21,mid1,R,mid1,r))%P;} }T; void Insert(int c){int plast,nplastcnt;len[np]len[p]1;for(;p!ch[p][c];pfa[p])ch[p][c]np;if(!p)fa[np]1;else{int qch[p][c];if(len[q]len[p]1)fa[np]q;else{int nqcnt;len[nq]len[p]1;memcpy(ch[nq],ch[q],sizeof(ch[nq]));fa[nq]fa[q];fa[q]fa[np]nq;for(;ch[p][c]q;pfa[p])ch[p][c]nq;}}v[np]1;return; } void addl(int x,int y){a[tot].toy;a[tot].nextls[x];ls[x]tot;return; } void dfs(int x){siz[x]1;for(int ils[x];i;ia[i].next){int ya[i].to;dfs(y);siz[x]siz[y];len[y]len[y]-len[x];if(siz[y]siz[son[x]])son[x]y;}return; } void dfs2(int x){dfn[dfc]x;rfn[x]dfc;if(son[x]){top[son[x]]top[x];dfs2(son[x]);}for(int ils[x];i;ia[i].next){int ya[i].to;if(yson[x])continue;top[y]y;dfs2(y);}return; } void print(int x) {if(x9)print(x/10);putchar(x%1048);return;} signed main() {freopen(string.in,r,stdin);freopen(string.out,w,stdout);scanf(%d,n);scanf(%s,s1);lastcnt1;for(int i1;in;i)Insert(s[i]-a),p[i]last;for(int i2;icnt;i)addl(fa[i],i);top[1]1;dfs(1);dfs2(1);ll k0,ans0;for(int i1;icnt;i)len[dfn[i]](len[dfn[i]]len[dfn[i-1]])%P;for(int i1;in;i){int xp[i];while(x){k(kT.Ask(1,1,cnt,rfn[top[x]],rfn[x]))%P;xfa[top[x]];}ans(ansk)%P;xp[i];while(x){T.Change(1,1,cnt,rfn[top[x]],rfn[x]);xfa[top[x]];}print((ansP)%P);putchar(\n);}return 0; }
http://www.zqtcl.cn/news/906127/

相关文章:

  • 浙江网站建设公司地址南京做电商网站的公司
  • 网上销售型的企业网站建行个人手机银行
  • 网站建设与规划方案书网站建设策划有哪些
  • 手机网站建设推广方案ppt模板单页企业官网模板
  • 荥阳网站建设多少钱长沙企业关键词优化哪家好
  • 网站购物流程模块怎么实现最新足球赛事
  • 网站建设后需要维护吗网站规划的案例
  • 北京造价员变更在哪个网站做免费域名申请入口
  • 百度免费收录提交入口seo wordpress theme
  • 公司付网站会员费科目怎么做wordpress 多站点 主题
  • 做深度的互联网站网站突然没收录了
  • 网站建设进度表下载周到的商城网站建设
  • 建设一个连接的网站服装企业网站源码
  • 什么网站源码做分类信息网站好域名备案企业网站内容
  • wordpress 文章显示数量淘宝seo优化怎么做
  • 响应式网站模块商务网站创建流程是什么
  • 关于服饰搭配做的比较好的网站网站后台管理默认密码
  • 用自己电脑配置服务器做网站响应式框架
  • 任经理++徐州网站建设湖南正规关键词优化
  • 哪些软件可以做网站设计农村网站建设茂名
  • 平顶山网站建设费用腾讯云轻量应用服务器
  • 外贸优秀网站廊坊seo建站
  • 站长工具seo综合查询5g网站建设整改落实情况
  • 网站建设方案 流程wordpress客户案例
  • 网站被收录的过程如何创造属于自己的软件
  • 做神马网站优化快速排国外乡村建设网站
  • 东莞网站优化服务公司天河做网站开发
  • ui在线设计网站滁州 来安县建设局网站
  • 做印尼购物网站如何发货wordpress怎么换中文
  • 深圳方维网站建设公司企业网站推广方式和策略