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

唐山网站建设太原seo建站

唐山网站建设,太原seo建站,西安未央区网站建设,给房地产公司做网站的公司适用于解决一棵树中只需要用到少部分点的时候,将需要用到的点提出来单独建一棵树 /********************* 虚树 *********************/ struct edge {int to, next;int val; };struct Virtual_Tree {int n; // 点数int dfn[N]; // dfs序int dep[N]; // 深度int fa…

适用于解决一棵树中只需要用到少部分点的时候,将需要用到的点提出来单独建一棵树

/********************* 虚树 *********************/
struct edge
{int to, next;int val;
};struct Virtual_Tree
{int n; // 点数int dfn[N]; // dfs序int dep[N]; // 深度int fa[N][25], m[N];int num; // 关键点数vector<int> lst; // 关键点bool query[N]; // 是否为关键点int top, cnt1 = 1, cnt2 = 1, dfscnt = 1;int stk[MAXN];int head1[N], head2[N];struct edge edge1[N << 1], edge2[N << 1]; // 原树和虚树/* 在下方添加需要的信息定义 */int minv[N];/***************************/// 初始化void init(){for (int i = 1; i <= n; i ++ ){dfn[i] = dep[i] = m[i] = query[i] = 0;for (int j = 0; j < 24; j ++ ) fa[i][j] = 0;}}// 原树建边void add1(int x, int y, int v){edge1[cnt1].next = head1[x];edge1[cnt1].to = y;edge1[cnt1].val = v;head1[x] = cnt1 ++ ;}// 虚树建边void add2(int x, int y){edge2[cnt2].next = head2[x];edge2[cnt2].to = y;head2[x] = cnt2 ++ ;}// 预处理原树基本信息void dfs1(int pos){int k;for (k = 0; fa[pos][k]; k ++ ) fa[pos][k + 1] = fa[fa[pos][k]][k];m[pos] = k;dfn[pos] = dfscnt++;for (int i = head1[pos]; i; i = edge1[i].next){int to = edge1[i].to;if (!dfn[to]){dep[to] = dep[pos] + 1;fa[to][0] = pos;/* 在下方处理需要的信息 */minv[to] = min(minv[pos], edge1[i].val);/***********************/dfs1(to);}}}// 倍增求lcaint lca(int x, int y){if (dep[x] < dep[y]) swap(x, y);for (int i = m[x]; i > -1; i -- ){if (dep[fa[x][i]] >= dep[y]) x = fa[x][i];}if (x == y) return x;for (int i = m[x]; i > -1; i -- ){if (fa[x][i] != fa[y][i]){x = fa[x][i];y = fa[y][i];}}return fa[x][0];}// 建虚树 关键点存在lst里 lst大小为k 下标从0开始void build(int k, vector<int>& lst){// 按照dfs序排序规则auto cmp = [&](int x1, int x2){return dfn[x1] < dfn[x2];};sort(lst.begin(), lst.end(), cmp);stk[top = 1] = lst[0];for (int i = 1; i < k; i ++ ){int now = lst[i];int lc = lca(now, stk[top]);while (1){if (dep[lc] >= dep[stk[top - 1]]){if (lc != stk[top]){add2(lc, stk[top]);if (lc != stk[top - 1]) stk[top] = lc;else top -- ;}break;}else{add2(stk[top - 1], stk[top]);top -- ;}}stk[++ top] = now;}while (-- top) add2(stk[top], stk[top + 1]);}// 树形dp计算答案int dfs2(int u){/* 下方填写计算答案代码逻辑 *//**************************/// 清空虚树query[u] = false;head2[u] = 0;return res;}// 在下方填写解题逻辑void solve(){/* 思路 *//********/// 每次建虚树后需要清空cnt2 = 1;lst.clear();}
} vtr;
/***********************************************/
http://www.zhongyajixie.com/news/12095.html

相关文章:

  • wordpress数据库优化seo网站优化软件
  • 成都网站开发 Vr昆明百度关键词优化
  • 网站建设怎么估算费用和报价市场营销策划公司
  • 余姚市城乡建设局网站推广
  • wordpress不同分类不同模板 插件长沙网站优化效果
  • adobe配色网站东莞优化网站制作
  • php网站开发书籍中文搜索引擎排行榜
  • 免费ip代理服务器优化设计四年级上册数学答案
  • 做网站需要美工吗网站关键词怎么优化排名
  • 作图软件免费百度关键词优化软件网站
  • 电商平台网站郑州网站推广报价
  • 网站建设武汉关键词排名方案
  • 深圳市年年卡网络科技公司是什么网站优化入门免费教程
  • 网站关键词百度搜不到最新的疫情防控政策和管理措施
  • 如何从下载的视频查到原网站百度一下百度网页版
  • 怎么在百度上制作自己的网站石家庄网站seo外包
  • 如何将自己做的网站变成中文网络推广服务商
  • flash网站设计教程免费发布信息网网站
  • 快速网站建设网络整合营销理论
  • 用腾讯云做网站的好处朝阳区seo搜索引擎优化介绍
  • 保险预约windows优化大师是系统软件吗
  • 全国建设部网站证书查询软文有哪几种类型
  • 泉做网站的公司专业网站推广优化
  • 小说网站签约作者应该怎么做网站的开发流程
  • 手机上自己做网站营口建网站的公司
  • wordpress权限代码网站seo收录
  • 东莞做网站-南城信科网络推广公司方案
  • 怎么用ps做网站图片淘宝搜索词排名查询
  • 武安专业做网站微信5000人接推广费用
  • 深圳响应式网站建设南京seo公司教程