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

吉浦网站建设wordpress 4.1分页

吉浦网站建设,wordpress 4.1分页,网络营销品牌策划,深圳网站建设信科便宜Description 给定一棵 n n n 个点的树#xff0c;每条边权值均为 1 1 1#xff0c;树上有 k k k 个关键点#xff0c;关键点们在 0 0 0 的时间内相互可达#xff0c; q q q 次询问#xff0c;求 s → t s\to t s→t 的最短路。 Analysis 考虑暴力建图#xff0c;…Description 给定一棵 n n n 个点的树每条边权值均为 1 1 1树上有 k k k 个关键点关键点们在 0 0 0 的时间内相互可达 q q q 次询问求 s → t s\to t s→t 的最短路。 Analysis 考虑暴力建图则图上共有 ( n − 1 n ( n − 1 ) 2 ) (n-1\frac{n(n-1)}{2}) (n−12n(n−1)​)条边在 n , k n,k n,k 均为最大的情况下图上共有大约 2 × 1 0 10 2 \times 10^{10} 2×1010 条边铁定 MLE。 我们注意到从 s s s 到 t t t 只有两种情况 老老实实从树上走从 s s s 走到一个关键点 k 1 k_1 k1​穿越到另一个关键点 k 2 k_2 k2​再走到 t t t。 第一种情况就是常规树上两点最短路。 第二种情况根据贪心思想选取的 k 1 , k 2 k_1,k_2 k1​,k2​ 一定是距离 s , t s,t s,t 最近的两个。所以我们初始时一次 bfs 求出每个点 i i i 到传送门的距离 d s t i dst_i dsti​最终答案即为 d s t s d s t t dst_sdst_t dsts​dstt​。 Code // Problem: P10289 [GESP样题 八级] 小杨的旅游 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P10289 // Memory Limit: 512 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org)#include iostream #include queue #include cmath using namespace std;using Graph vectorvectorint; const int INF 1e9;struct LCA{int n, k;vectorint dep;vectorvectorint f;Graph G;LCA() {}LCA(const Graph tree): G(tree){n G.size();k (int)log2(n) 1;dep.assign(n, 0);f.assign(n, vectorint(k, -1));dfs(0, 0);}void dfs(int u, int fa){dep[u] dep[fa] 1;f[u][0] fa;for(int i 1; i k; i) f[u][i] f[f[u][i - 1]][i - 1];for(auto v: G[u]){if(v fa) continue;dfs(v, u);}}int lca(int x, int y){if(dep[x] dep[y]) swap(x, y);for(int i k - 1; i 0; i--)if(dep[f[x][i]] dep[y]) x f[x][i];if(x y) return x;for(int i k - 1; i 0; i --)if(f[x][i] ! f[y][i]){x f[x][i];y f[y][i];}return f[x][0];}int dist(int x, int y){return dep[x] dep[y] - 2 * dep[lca(x, y)];}};signed main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int n, k, q;cin n k q;Graph G(n);for (int i 0, u, v; i n - 1; i) {cin u v;u--, v--;G[u].push_back(v);G[v].push_back(u);}LCA tree(G);queueint que;vectorint dis(n, INF);for (int i 0, x; i k; i) {cin x;x--;que.push(x);dis[x] 0;}while (que.size()) {int u que.front();que.pop();for (auto v: G[u])if (dis[v] INF) {dis[v] dis[u] 1;que.push(v);}}auto dist [](int x, int y) {return min(tree.dist(x, y), dis[x] dis[y]);};for (int i 0, u, v; i q; i) {cin u v;u--, v--;cout dist(u, v) endl;}return 0; }
http://www.hkea.cn/news/14261146/

相关文章:

  • 网站建设合同服务事项网站源码交易平台
  • 网站如何做导航条下拉菜单wordpress模板wiki
  • 网站进入沙盒期加强服务保障满足群众急需i
  • 有做网站动态效果软件网站建设总体规划
  • 网站转发代码wordpress的网站怎样添加地图坐标
  • 郑州专业网站制作的公司哪家好产品设计欣赏
  • 备案查询网站wordpress 伪静态404
  • 网站建设温州科目一星巴克网站建设方案
  • 国外网页素材网站成都网站seo诊断
  • 毕设做网站具体步骤湖南网络营销外包
  • 众鱼深圳网站建设贵州网站外包
  • 一般做网站要什么编程网站显示结算
  • 移动端h5网站开发框架wordpress图片切换
  • 旅游类网站如何做推广网站建设与安全
  • 如何更快的学习.net网站开发超云seo优化
  • 什邡移动网站建设wordpress 建站 教程视频
  • 邯郸移动网站建设价格个人网站域名所有权
  • 中国电子商务企业广州抖音seo公司
  • 石家庄电子商城网站建设站长工具seo综合
  • 卢氏住房和城乡建设厅网站文章管理系统网站模板
  • 建网站空间可以不买适合年轻人看的播放器
  • 怎么做非法网站aws 虚机wordpress教程
  • 中国临沂网站优化免费申请一个网站
  • 上海网站备案拍照地点小说网站开发的目的
  • 青浦做网站安徽两学一做网站
  • 网站建设公司怎么做好电子商务网站设计怎么做
  • 网站制作一般要几天怎么上传网站模板
  • 做网站seo优化总结wordpress微博图床优点缺点
  • 提供有经验的网站建设网站推广服务合同模板
  • 长沙做网站需要多少钱企业服务内容怎么写