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

WordPress漏洞报告整站优化和单词

WordPress漏洞报告,整站优化和单词,个人博客网站制作代码,苏州工程造价信息网官网一道挺好的树上莫队板子题&#xff0c;可惜存在版权无法提交了。 这里给出代码供大家参考&#xff0c;分块操作类似于王室联盟&#xff0c;转成序列后和普通莫队一样。 By&#xff1a;大奕哥 1 #include<bits/stdc.h>2 using namespace std;3 const int N1e55;4 int d[N]…

一道挺好的树上莫队板子题,可惜存在版权无法提交了。

这里给出代码供大家参考,分块操作类似于王室联盟,转成序列后和普通莫队一样。

By:大奕哥

  1 #include<bits/stdc++.h>
  2 using namespace std;
  3 const int N=1e5+5;
  4 int d[N],fa[N][20],bel[N],size[N],dfn[N],col[N],ans[N],p[N],head[N];
  5 int n,m,sum,idx,cnt,B,num,top,s[N];
  6 bool v[N];
  7 struct node{
  8     int to,nex;
  9 }e[N<<1];
 10 void add(int x,int y)
 11 {
 12     e[++cnt].nex=head[x];e[cnt].to=y;head[x]=cnt;
 13 }
 14 struct quer{
 15     int x,y,a,b,id;
 16     bool operator<(const quer &b)const{
 17         return bel[x]<bel[b.x]||(bel[x]==bel[b.x]&&dfn[y]<dfn[b.y]);
 18     }
 19 }q[N];
 20 void dfs(int x)
 21 {
 22     dfn[x]=++idx;s[++top]=x;
 23     for(int i=1;i<=16;++i)
 24     fa[x][i]=fa[fa[x][i-1]][i-1];
 25     for(int i=head[x];i;i=e[i].nex)
 26     {
 27         int y=e[i].to;
 28         if(y==fa[x][0])continue;
 29         fa[y][0]=x;d[y]=d[x]+1;
 30         dfs(y);
 31         size[x]+=size[y];
 32         if(size[x]>=B)
 33         {
 34             num++;
 35             for(int k=1;k<=size[x];++k)
 36             bel[s[top--]]=num;
 37             size[x]=0;
 38         }
 39     }
 40     size[x]++;
 41 }
 42 int lca(int x,int y)
 43 {
 44     if(d[x]<d[y])swap(x,y);
 45     int tmp=d[x]-d[y];
 46     for(int i=0;i<=16;++i)
 47     if(tmp&(1<<i))x=fa[x][i];
 48     for(int i=16;i>=0;--i)
 49     {
 50         if(fa[x][i]!=fa[y][i])
 51         {
 52             x=fa[x][i];
 53             y=fa[y][i];
 54         }
 55     }
 56     return x==y?x:fa[x][0];
 57 }
 58 void reverse(int x)
 59 {
 60     if(!v[x]){v[x]=1;p[col[x]]++;if(p[col[x]]==1)sum++;}
 61     else {v[x]=0;p[col[x]]--;if(p[col[x]]==0)sum--;}
 62     return;
 63 }
 64 void solve(int x,int y)
 65 {
 66     while(x!=y)
 67     {    
 68         if(d[x]<d[y])swap(x,y);
 69         reverse(x);x=fa[x][0];
 70     }
 71     return;
 72 }
 73 int main()
 74 {
 75     scanf("%d%d",&n,&m);
 76     B=sqrt(n);int x,y,rt;
 77     for(int i=1;i<=n;++i)scanf("%d",&col[i]);
 78     for(int i=1;i<=n;++i)
 79     {
 80         scanf("%d%d",&x,&y);
 81         if(!x)rt=y;else if(!y)rt=x;
 82         else add(x,y),add(y,x);
 83     }
 84     dfs(rt);num++;
 85     while(top)bel[s[top--]]=num;
 86     for(int i=1;i<=m;++i)
 87     {
 88         scanf("%d%d",&q[i].x,&q[i].y);
 89         if(dfn[q[i].x]>dfn[q[i].y])swap(q[i].x,q[i].y);
 90         q[i].id=i;
 91         scanf("%d%d",&q[i].a,&q[i].b);
 92     }
 93     sort(q+1,q+1+m);
 94     int z=lca(q[1].x,q[1].y);
 95     solve(q[1].x,q[1].y);
 96     reverse(z);ans[q[1].id]=sum;
 97     if(p[q[1].a]&&p[q[1].b]&&q[1].a!=q[1].b)ans[q[1].id]--;
 98     reverse(z);
 99     for(int i=2;i<=m;++i)
100     {
101         int z=lca(q[i].x,q[i].y);
102         solve(q[i-1].x,q[i].x);
103         solve(q[i-1].y,q[i].y);
104         reverse(z);ans[q[i].id]=sum;
105         if(p[q[i].a]&&p[q[i].b]&&q[i].a!=q[i].b)ans[q[i].id]--;
106         reverse(z);
107     }
108     for(int i=1;i<=m;++i)printf("%d\n",ans[i]);
109     return 0;
110 }

 

转载于:https://www.cnblogs.com/nbwzyzngyl/p/8351635.html

http://www.lbrq.cn/news/2453419.html

相关文章:

  • 绍兴企业做网站google关键词工具
  • 专业网站建设在哪里小广告多的网站
  • 手机网站显示建设中深圳网站建设公司排名
  • 如何建造一个网站广州做seo的公司
  • 做ppt的图片素材网站花都网站建设公司
  • 做印量调查的网站seo博客
  • 设计网站printestseo官网优化
  • 扁平化设计风格网站网站建设公司官网
  • 广州微网站建设效果刷钻业务推广网站
  • lua做网站焊工培训ppt课件
  • 南京网站排名关键词优化百家号
  • 全国疫情最新资讯windows优化大师会员兑换码
  • 江油网站建设自制网站
  • 建设工程质量监督站网站站长工具ip查询
  • php怎么做网站后台品牌推广营销平台
  • 西安网络公司做网站快照网站
  • wordpress漫画模板宁波seo推广哪家好
  • 介休做网站江阴百度推广公司
  • 电子商务网站建设规划书范文青岛网站制作公司
  • 网站效果用什么软件做百度seo泛解析代发排名
  • 荣成网站制作公司谷歌play
  • wordpress后台编辑网站seo关键词排名查询
  • 实时爬虫网站是怎么做的网络推广员每天的工作是什么
  • 重庆网站营销公司友情链接平台站长资源
  • 不会被封的网站谁做如何让自己网站排名提高
  • 淮安网站建设制作网络营销企业有哪些公司
  • 太仓公司做网站潍坊网站建设
  • 怎么做英文垃圾网站怎么自己弄一个网站
  • 深圳哪里有做网站推广的搜狗搜索排名优化
  • 织梦儿童早教教育培训网站模板石家庄seo
  • MyBatis-Plus 通用 Service
  • mysql查找数据库表中某几个连续的编号中中断的编号
  • MyBatisPlus(一)简介与基本CRUD
  • 小白如何认识并处理Java异常?
  • C++ 多线程同步机制详解:互斥锁、条件变量与原子操作
  • GUI界面已经移植完,添加欠缺字,微调GUI界面说明