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

网站忧化工作怎么样手机怎么制作网址链接

网站忧化工作怎么样,手机怎么制作网址链接,凯里市建设局网站,2022网页游戏大全P3250 [HNOI2016]网络 做法有点神奇#xff01;#xff01;#xff01;利用堆作为节点建立一颗线段树#xff0c;用堆维护线段树上点的信息。 说说查询操作#xff0c;我们的目的是要查询#xff0c;没有经过这个点的事件最大值#xff0c;考虑如何维护。 我们定义线…P3250 [HNOI2016]网络 做法有点神奇利用堆作为节点建立一颗线段树用堆维护线段树上点的信息。 说说查询操作我们的目的是要查询没有经过这个点的事件最大值考虑如何维护。 我们定义线段树上的信息每个点记录的是没有经过这个区间的事件值。 事件插入我们可以利用树剖得到从x−yx-yx−y的路径形成的log⁡n\log nlogn个连续的段 我们先把这些段给存下来然后再按照lll排个序在这些段之外插入事件值。 同样的事件删除我们只要在这些段之外删除事件值即可这里好像有(log⁡n)3(\log n) ^ 3(logn)3。 对于查询操作我们只要去查找这个点所在的区间的最大值即可因为我们记录的是不在这个区间里的值。 #include bits/stdc.h #define mid (l r 1) #define lson rt 1, l, mid #define rson rt 1 | 1, mid 1, r #define ls rt 1 #define rs rt 1 | 1using namespace std;const int N 1e5 10;struct Heap {priority_queueint a, b;void push(int x) {a.push(x);}void erase(int x) {b.push(x);}int top() {while (b.size() a.top() b.top()) {a.pop(), b.pop();}return a.top();} }tree[N 2];void build(int rt, int l, int r) {tree[rt].push(-1);if (l r) {return ;}build(lson);build(rson); }void update(int rt, int l, int r, int L, int R, int value, int op) {if (l L r R) {if (op) {tree[rt].push(value);}else {tree[rt].erase(value);}return ;}if (L mid) {update(lson, L, R, value, op);}if (R mid) {update(rson, L, R, value, op);} }int query(int rt, int l, int r, int L, int R) {if (l L r R) {return tree[rt].top();}int ans tree[rt].top();if (L mid) {ans max(ans, query(lson, L, R));}if (R mid) {ans max(ans, query(rson, L, R));}return ans; }int head[N], to[N 1], nex[N 1], cnt 1;int fa[N], son[N], sz[N], top[N], dep[N], rk[N], id[N], tot;int a[N 1], b[N 1], v[N 1], n, m;void add(int x, int y) {to[cnt] y;nex[cnt] head[x];head[x] cnt; }void dfs1(int rt, int f) {fa[rt] f, dep[rt] dep[f] 1, sz[rt] 1;for (int i head[rt]; i; i nex[i]) {if (to[i] f) {continue;}dfs1(to[i], rt);sz[rt] sz[to[i]];if (!son[rt] || sz[son[rt]] sz[to[i]]) {son[rt] to[i];}} }void dfs2(int rt, int tp) {top[rt] tp, rk[tot] rt, id[rt] tot;if (!son[rt]) {return ;}dfs2(son[rt], tp);for (int i head[rt]; i; i nex[i]) {if (to[i] fa[rt] || to[i] son[rt]) {continue;}dfs2(to[i], to[i]);} }typedef pairint, int pii;pii sec[N];void update(int x, int y, int v, int op) {int cnt 0;while (top[x] ! top[y]) {if (dep[top[x]] dep[top[y]]) {swap(x, y);}sec[cnt] make_pair(id[top[x]], id[x]);x fa[top[x]];}if (dep[x] dep[y]) {swap(x, y);}sec[cnt] make_pair(id[x], id[y]);sort(sec 1, sec 1 cnt);int l 0;for (int i 1; i cnt; i) {if (l 1 sec[i].first) {update(1, 1, n, l 1, sec[i].first - 1, v, op);}l sec[i].second;}if (l n) {update(1, 1, n, l 1, n, v, op);} }int main() {// freopen(in.txt, r, stdin);// freopen(out.txt, w, stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);scanf(%d %d, n, m);for (int i 1; i n; i) {int x, y;scanf(%d %d, x, y);add(x, y);add(y, x);}dfs1(1, 0);dfs2(1, 1);build(1, 1, n);for (int i 1; i m; i) {int op, x;scanf(%d, op);if (op 0) {scanf(%d %d %d, a[i], b[i], v[i]);update(a[i], b[i], v[i], 1);}else if (op 1) {scanf(%d, x);update(a[x], b[x], v[x], 0);}else {scanf(%d, x);printf(%d\n, query(1, 1, n, id[x], id[x]));}}return 0; }
http://www.zqtcl.cn/news/711426/

相关文章:

  • 营销网站费用渭南网站建设公司
  • wordpress主题集成插件下载网站如何做360优化
  • 有什么在线做文档的网站网站开发需要用到哪些技术
  • 网站套餐可以分摊吗吗移动登录网页模板免费下载
  • asp网站会员注册不了但是打不开网页
  • wordpress 中文网店杭州排名优化公司
  • wordpress建站安全吗wordpress企业主题教程
  • 网站构建的开发费用信息管理系统网站开发教程
  • 自己做网站怎么维护wordpress素材模板
  • 如何选择一个好的优质网站建设公司wordpress 主题小工具
  • mysql数据库做网站广州网站seo地址
  • 福建省住房和城乡建设厅网站电话网站开发项目步骤
  • 网站注册域名多少钱淘宝网商城
  • 做架构图的网站网站和网店的区别
  • 做红包网站简单个人网站设计
  • 新手学做网站pdf手wordpress修改搜索框
  • 做湲兔费网站视颍如何通过查询网站注册时间
  • 重庆cms建站模板南通网站建设推广优化
  • 合肥网站建设的公司新闻类网站如何做量化统计
  • 好用的在线地图网站十六局集团门户网
  • 网站开发数据库连接失败广州网站建站平台
  • 鄂尔多斯北京网站建设加盟网站建设的内容
  • 网站 被 抄袭不属于营销型网站的特点
  • 浙江英文网站建设互联网公司排名2021完整版
  • 完美代码的网站python开发工具
  • 餐饮网站开发参考文献网站建设500错误代码
  • 网站开发关键技术网站自动推广软件免费
  • 前端学习网站南阳东莞网站建设公司哪家好
  • 关于做网站的了解点wordpress小程序插曲
  • PHP网站开发与管理设计心得个人可以做聊天网站备案吗