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

企业网站的制作公司2022最新免费的推广引流软件

企业网站的制作公司,2022最新免费的推广引流软件,网站制作专业,网站空间付款方式传送门 无脑暴力O2AC 题目要统计距离两两相等的三个点的组数,这三个点之间显然有一个点,并且这三个点到这个点的距离都相同.所以枚举中间这个点作为根,然后bfs整棵树,对于每一层,把以根的某个儿子的子树中在这一层点的数量统计出来,那么这样三元组的数量就是在这些点里面选3个点…

传送门

无脑暴力+O2=AC

题目要统计距离两两相等的三个点的组数,这三个点之间显然有一个点,并且这三个点到这个点的距离都相同.所以枚举中间这个点作为根,然后bfs整棵树,对于每一层,把以根的某个儿子的子树中在这一层点的数量统计出来,那么这样三元组的数量就是在这些点里面选3个点,并且分别来自不同子树的方案,\(f_{i,0/1/2/3}\)即可

详见代码

// luogu-judger-enable-o2
#include<bits/stdc++.h>
#define LL long long
#define il inline
#define re registerusing namespace std;
const int N=5000+10;
il int rd()
{int x=0,w=1;char ch=0;while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}return x*w;
}
LL ans,f[N][4];
int to[N<<1],nt[N<<1],hd[N],dg[N],tot=1,a[N];
bool v[N];
il void add(int x,int y)
{++tot,to[tot]=y,nt[tot]=hd[x],hd[x]=tot,++dg[x];++tot,to[tot]=x,nt[tot]=hd[y],hd[y]=tot,++dg[y];
}
int n,m;int main()
{n=rd();for(int i=1;i<n;++i) add(rd(),rd());for(int i=0;i<=n;++i) f[i][0]=1;queue<int> id[2],q[2];for(int i=1;i<=n;++i){memset(v,0,sizeof(v));v[i]=1;while(!id[0].empty()) id[0].pop();while(!id[1].empty()) id[1].pop();while(!q[0].empty()) q[0].pop();while(!q[1].empty()) q[1].pop();m=dg[i];int nw=1,la=0;for(int j=hd[i],k=1;j;j=nt[j],++k) id[0].push(k),q[0].push(to[j]);while(!q[la].empty()){memset(a,0,4*(m+1));while(!q[la].empty()){int k=id[la].front(),x=q[la].front();id[la].pop(),q[la].pop();++a[k],v[x]=true;for(int j=hd[x];j;j=nt[j]){int y=to[j];if(!v[y]) id[nw].push(k),q[nw].push(y);}}for(int j=1;j<=m;++j){for(int k=1;k<=3;++k) f[j][k]=f[j-1][k]+f[j-1][k-1]*a[j];}ans+=f[m][3];swap(nw,la);}}printf("%lld\n",ans);return 0;
}

正解是长链剖分

咕咕咕

传送门

其实上面那个dp比较沙雕,可以直接设\(f_{i,j}\)为点\(i\)子树内到\(i\)距离为\(j\)的点个数,\(g_{i,j}\)为点\(i\)子树内,到lca距离为\(d\),且这个lca到\(i\)距离为\(d-j\)的点对个数,然后转移就是
\[ans=\sum_{x}g_{x,0}+\sum_{y=son_x}\sum_{j}f_{x,j-1}*g_{y,j}\]\[f_{x,j}=\sum_{y=son_x} f_{y,j-1}\]\[g_{x,j}=\sum_{y=son_x,z=son_x,y<z} f_{y,j-1}*f_{z,j-1}+\sum_{y=son_x} g_{y,j+1}\]

对整棵树长链剖分之后,那么转移时就直接可以继承重儿子的信息,轻儿子直接暴力合并,因为每个点只会在链顶被暴力合并上去,所以复杂度是\(O(n)\)

#include<bits/stdc++.h>
#define LL long long
#define il inline
#define re registerusing namespace std;
const int N=100000+10;
il int rd()
{int x=0,w=1;char ch=0;while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}return x*w;
}
int to[N<<1],nt[N<<1],hd[N],tot=1;
il void add(int x,int y)
{++tot,to[tot]=y,nt[tot]=hd[x],hd[x]=tot;++tot,to[tot]=x,nt[tot]=hd[y],hd[y]=tot;
}
int n,m;
int ff[N],de[N],dpt[N],son[N];
LL *f[N],*g[N],rbq[N<<3],*uc=rbq,ans;
void dfs1(int x)
{dpt[x]=de[x];for(int i=hd[x];i;i=nt[i]){int y=to[i];if(y==ff[x]) continue;ff[y]=x,de[y]=de[x]+1,dfs1(y),dpt[x]=max(dpt[x],dpt[y]);if(dpt[son[x]]<dpt[y]) son[x]=y;}
}
void dd(int x)
{if(son[x]) f[son[x]]=f[x]+1,g[son[x]]=g[x]-1,dd(son[x]);f[x][0]=1,ans+=g[x][0];for(int i=hd[x];i;i=nt[i]){int y=to[i];if(y==ff[x]||y==son[x]) continue;f[y]=uc,uc+=(dpt[y]-de[x]+1)<<1,g[y]=uc,uc+=(dpt[y]-de[x]+1)<<1;dd(y);for(int j=0;j<dpt[y]-de[x];++j){if(j) ans+=f[x][j-1]*g[y][j];ans+=g[x][j+1]*f[y][j];}for(int j=0;j<dpt[y]-de[x];++j){g[x][j+1]+=f[x][j+1]*f[y][j];if(j) g[x][j-1]+=g[y][j];f[x][j+1]+=f[y][j];}}
}int main()
{n=rd();for(int i=1;i<n;++i) add(rd(),rd());de[1]=1,dfs1(1);f[1]=uc,uc+=(dpt[1]+1)<<1,g[1]=uc,uc+=(dpt[1]+1)<<1;dd(1);printf("%lld\n",ans);return 0;
}

转载于:https://www.cnblogs.com/smyjr/p/10055714.html

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

相关文章:

  • jsp做网站用到的软件软文媒体
  • 全球访问量最大的网站关键词搜索优化公司
  • 电商网站模版b站官方推广
  • 教做flash的网站申请一个网站
  • 中国排名前十跨境电商平台百度移动端优化
  • 合肥做网站优化网络服务平台
  • 企业网站建设可行分析会员营销
  • 毕设做网站什么主题比较好网络公司网络营销推广方案
  • 建材网站开发怎么制作网页设计
  • 德州做网站的公司百度免费发布信息网站
  • 怎么做电子商务的网站推广方案格式模板范文
  • 网站建设 项目经验爱站之家
  • 台州免费建站免费网站服务器安全软件下载
  • 杭州做网站公司哪家好搜索引擎优化的核心本质
  • 广州网站维护公司网站站内关键词优化
  • 南城免费做网站怎么做表格
  • 做押韵句子的网站百度关键词多少钱一个月
  • 如何创业做网站广州seo网站优化培训
  • 做网站是用什么技术的天津seo推广服务
  • 企业网站建设 属于什么费用百度云官网登录首页
  • 重庆制作网站首页免费seo优化工具
  • 网络推广方案swot分析seo代码优化工具
  • 自己做的网站怎么放到网上去哪个网站做推广效果好
  • 网站建设公众号小程序推广开发网络营销是以什么为中心
  • 东莞最新一例阳性做搜索引擎优化的企业
  • 返利商城网站怎么做百度竞价排名模式
  • 广告公司网站模板2023重大新闻事件10条
  • 网站菜单样式网站网络推广运营
  • 互联网网站开发服务合同优化营商环境应当坚持什么原则
  • 金阳建设集团网站网络营销专业大学排名
  • 第10篇:实战验收篇
  • Fast_Lio 修改激光雷达话题
  • 1. Qt多线程开发
  • HTML5元素相关补充
  • HTML 常用标签速查表
  • 杂谈:前端开发中的常见问题