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

吉林省长春市建设局网站龙岩刚刚发生的事

吉林省长春市建设局网站,龙岩刚刚发生的事,广州联亨科技网站建设,手机微网站第二年续费吗Problem - G - Codeforces 题意#xff1a; 思路#xff1a; 首先#xff0c;目标值和结点权值是直接联系的#xff0c;最值不可能直接贪心#xff0c;一定是考虑去枚举一些东西#xff0c;依靠这种枚举可以遍历所有的有效情况#xff0c;思考的方向一定是枚举 如果去…Problem - G - Codeforces 题意 思路 首先目标值和结点权值是直接联系的最值不可能直接贪心一定是考虑去枚举一些东西依靠这种枚举可以遍历所有的有效情况思考的方向一定是枚举 如果去直接在链上枚举的话 复杂度是O(nq)肯定不行 注意到一条路径上的前缀或值不会超过 logV个因此考虑枚举前缀或值 关于每次跳使前缀或值变化的最深的点我是这样理解的 如果考虑在链上枚举如果前缀或值不变那么这样的枚举是无效的我们直接考虑跳着枚举只枚举所有有效情况 关于怎么跳其实可以参考树上倍增往上跳的跳法记录一个数组指向下一个结点在dfs上维护即可有点像在树链上DP Code #include bits/stdc.h#define int long longconstexpr int N 2e5 10;std::vectorint adj[N];int n; int a[N]; int dep[N]; int f[N][33], s[N][33], lst[N][33];void dfs(int u, int fa) {dep[u] dep[fa] 1;f[u][0] fa;for (int j 1; j 30; j ) f[u][j] f[f[u][j - 1]][j - 1];int val a[u];for (int j 30; j 0; j --) {if (!((val j) 1)) {lst[u][j] lst[fa][j];s[u][j] s[fa][j];}else {lst[u][j] u;s[u][j] s[fa][j] 1;}}for (auto v : adj[u]) {if (v fa) continue;dfs(v, u);} } int lca(int u, int v) {if (dep[u] dep[v]) std::swap(u, v);for (int j 30; j 0; j --) {if (dep[f[u][j]] dep[v]) {u f[u][j];}}if (u v) return u;for (int j 30; j 0; j --) {if (f[u][j] ! f[v][j]) {u f[u][j];v f[v][j];}}return f[u][0]; } int calc(int x, int y, int lca) {int res 0;for (int j 0; j 30; j ) {if (s[x][j] s[y][j] - s[lca][j] - s[f[lca][0]][j]) res ;}return res; } void solve() {std::cin n;for (int i 1; i n; i ) {adj[i].clear();dep[i] 0;for (int j 30; j 0; j --) {f[i][j] s[i][j] lst[i][j] 0;}}for (int i 1; i n; i ) std::cin a[i];for (int i 1; i n - 1; i ) {int u, v;std::cin u v;adj[u].push_back(v);adj[v].push_back(u);}dfs(1, 0);int q;int ans 0;std::cin q;while(q --) {int x, y;std::cin x y;int cur x, val a[x];ans 0;while(1) {int nxt 0, mx 0;ans std::max(ans, calc(x, cur, lca(x, cur)) calc(cur, y, lca(cur, y)));for (int j 30; j 0; j --) {if (!((val j) 1)) {if (dep[lst[cur][j]] dep[lca(x, y)]) {if (dep[lst[cur][j]] mx) {mx dep[lst[cur][j]];nxt lst[cur][j];}}}}if (!mx) break;val | a[nxt];cur nxt;}cur y, val a[y];while(1) {int nxt 0, mx 0;ans std::max(ans, calc(x, cur, lca(x, cur)) calc(cur, y, lca(cur, y)));for (int j 30; j 0; j --) {if (!((val j) 1)) {if (dep[lst[cur][j]] dep[lca(x, y)]) {if (dep[lst[cur][j]] mx) {mx dep[lst[cur][j]];nxt lst[cur][j];}}}}if (!mx) break;val | a[nxt];cur nxt;}std::cout ans ;}std::cout \n; } signed main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t 1;std::cin t;while(t --) {solve();}return 0; }
http://www.eeditor.cn/news/126200/

相关文章:

  • 让别人做网站推广需要多少钱平台网站怎么做seo
  • 温州网站推广效果好温州市网站
  • 有机生态农业网站模板网站建设网站建设教程
  • 网站基础建设网站做cdn需要多少钱
  • 广州响应式网站制作常用的网页设计工具
  • 带数字 网站 域名网站功能策划书
  • 河北集团网站建设我要建设一个网站
  • 可以做任务的创意设计网站闵行虹桥网站建设
  • app 排名网站网站兼容设置
  • 央企网站建设机械网站推广怎么做
  • 有没有悬赏做ppt的网站wordpress d8 3.0
  • 做网站 什么语言深圳 网站 传播
  • 酒店要做关于网站ppt怎么做咸阳学校网站建设费用
  • 如何学习做网站建设功能网站价格
  • 宿迁市建设局投诉网站wordpress指定文章评论
  • 企业网站建设要素南郊网站建设报价
  • 设计公司网站应该包括的信息科技企业网站如何建设
  • 手机网站制作设计建网站的论坛
  • 大竹网站建设天津站建站时间
  • 用路由器做网站wordpress文章显示摘要
  • 汉中网站建设公司推荐wordpress 收费阅读
  • ppt模板有哪些网站做生产计划类的网站
  • 深圳做网站优化报价运河建设管理网站
  • 网站的投票 计数模块怎么做上海的室内设计公司
  • 查看网站开发技术如何做好网络宣传
  • 网站备案材料金戈西地那非片
  • 网站后台首页模板做外包胡it网站
  • 网站建设培训学校广州精美网站建设
  • 网站如何做流量网页版百度网盘
  • 电影网站logo设计浏览器提醒 WordPress