P3976 [TJOI2015]旅游(未完成)
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=1e6+;
const int inf=<<;
int size[maxn];
int top[maxn];
int dfsx[maxn];
int son[maxn];
int father[maxn];
struct node
{
int to;
int next;
}way[maxn<<];
struct node1
{
int max;
int min;
int ans,ans1;
node1()
{
ans=ans1=max=;
min=inf;
}
}
struct node2
{
int l,r,ls,rs;
int min,max;
int ans,ans1;
int lazy;
}tree[maxn<<];
int add(int x,int y)
{
way[++tot].next=head[x];
way[tot].to=y;
head[x]=tot;
} int dfs1(int x)
{
size[x]=;
for(int i=head[x];i;i=way[i].next)
{
int to=way[i].to;
if(father[x]==to)
{
continue;
}
deep[to]=deep[x]+;
father[to]=x;
dfs1(to);
size[x]+=size[to];
if(size[to]>size[son[x]])
{
son[x]=to;
}
}
}
int dfs2(int x,int tp)
{
id[x]=++cnt;
top[x]=tp;
value[cnt]=a[x];
if(son[x])
{
dfs2(son[x],tp);
}
for(int i=head[x];i;i=way[i].next)
{
int to=way[i].to;
if(to==fa||to==son[x])
{
continue;
}
dfs2(to,to);
}
} inline int pushup(int x)
{
tree[x].ans=max(tree[tree[x].rs].max-tree[tree[x].ls].min,max(tree[tree[x].ls].ans,tree[tree[x].rs].ans));
tree[x].ans1=max(tree[tree[x].ls].max-tree[tree[x].rs].min,max(tree[tree[x].ls].ans1,tree[tree[x].rs].ans1);
tree[x].max=max(tree[tree[x].ls].max,tree[tree[x].rs].max);
tree[x].min=min(tree[tree[x].ls].min,tree[tree[x].rs].min);
} int build(int x,int l,int r)
{
x=++cnt;
tree[x].l=l;
tree[x].r=r;
if(l==r)
{
tree[x].min=tree[x].max=value[l];
tree[x].ans=tree[x].ans1=;
return ;
}
int mid=(l+r)>>;
build(tree[x].ls,l,mid);
build(tree[x].rs,mid+,r);
pushup(x);
} inline pushdown(int x)
{
if(!tree[x].lazy)
{
return ;
}
tree[tree[x].ls].lazy+=tree[x].lazy;
tree[tree[x].rs].lazy+=tree[x].lazy;
tree[tree[x].ls].max+=tree[x].lazy;
tree[tree[x].rs].max+=tree[x].lazy;
tree[tree[x].ls].min+=tree[x].lazy;
tree[tree[x].rs].min+=tree[x].lazy;
tree[x].lazy=;
} node1 pushup1(node1 tmp1,node1 tmp2)
{
node1 ans1;
ans1.ans=max(tmp2.max-tmp1.min,max(tmp1.ans,tmp2.ans));
ans1.ans1=max(tmp1.max-tmp2.min,max(tmp1.ans1,tmp2.ans1));
ans1.min=min(tmp1.min,tmp2.min);
ans1.max=max(tmp1.max,tmp2.max);
return ans1;
} }
node1 update(int x,int l,int r,int val)
{
if(l<=tree[x].l&&r>=tree[x].r)
{
tree[x].lazy+=val;
tree[x].max+=val;
tree[x].min+=val;
node1 ttt;
ttt.max=tree[x].max;
ttt.min=tree[x].min;
ttt.ans=tree[x].ans;
ttt.ans1=tree[x].ans1;
return ttt;
}
int mid=(tree[x].l+tree[x].r)>>;
node1 ttt1;
node1 ttt2;
pushdown(x);
if(l<=mid)
{
ttt1=update(tree[x].ls,l,r,val);
}
if(r>mid)
{
ttt2=update(tree[x].rs,l,r,val);
}
pushup(x);
return pushup1(ttt1,ttt2);
} int main()
{ return ;
}
P3976 [TJOI2015]旅游(未完成)的更多相关文章
- 【BZOJ3999】[TJOI2015]旅游(Link-Cut Tree)
[BZOJ3999][TJOI2015]旅游(Link-Cut Tree) 题面 BZOJ 洛谷 题解 一道不难的\(LCT\)题(用树链剖分不是为难自己吗,这种有方向的东西用\(LCT\)不是方便那 ...
- bzoj 3999: [TJOI2015]旅游
Description 为了提高智商,ZJY准备去往一个新世界去旅游.这个世界的城市布局像一棵树.每两座城市之间只有一条路径可 以互达.每座城市都有一种宝石,有一定的价格.ZJY为了赚取最高利益,她会 ...
- BZOJ3999:[TJOI2015]旅游(树链剖分)
Description 为了提高智商,ZJY准备去往一个新世界去旅游.这个世界的城市布局像一棵树.每两座城市之间只有一条路径可 以互达.每座城市都有一种宝石,有一定的价格.ZJY为了赚取最高利益,她会 ...
- BZOJ3999 [TJOI2015]旅游 【树剖 + 线段树】
题目 为了提高智商,ZJY准备去往一个新世界去旅游.这个世界的城市布局像一棵树.每两座城市之间只有一条路径可 以互达.每座城市都有一种宝石,有一定的价格.ZJY为了赚取最高利益,她会选择从A城市买入再 ...
- BZOJ3999 [TJOI2015]旅游
题面:给定一个有$n$个节点的树,每个点又点权$v_i$,每次选取一条树链$[a, b]$,求出$max(v_i - v_j)$,其中$i, j \in [a, b]$且$i$出现在$j$前面,最后树 ...
- [TJOI2015]旅游
树链剖分+线段树 线段树维护max,min,左往右的最大差,右往左的最大差 求LCA时一定要注意方向 # include <bits/stdc++.h> # define RG regis ...
- 2019.01.20 bzoj3999: [TJOI2015]旅游(树链剖分)
传送门 树链剖分菜题. 题意不清差评. 题意简述(保证清晰):给一棵带权的树,每次从aaa走到bbb,在走过的路径上任意找两个点,求后访问的点与先访问的点点权差的最大值. 思路: 考虑暴力:维护路径的 ...
- bzoj 3999: [TJOI2015]旅游 LCT
没啥难的,inf 的值设小了调了半天~ code: #include <bits/stdc++.h> #define N 50003 #define lson t[x].ch[0] #de ...
- TJOI2015 day2解题报告
TJOI2015终于写完啦~~~ T1:[TJOI2015]旅游 描述:(BZ没题面只能口述了..)一个人在一棵树上走,每次从a->b会进行一次贸易(也就是在这条路径上买入物品然后在后面卖出)然 ...
随机推荐
- Java中Integer与int对比的一些坑
Integer与int类型的关系 Integer是int的包装类,int的默认值是0,而Integer的默认值是null(我们经常在代码中使用的Integer.valueOf() 和xx.intVal ...
- Salesforce学习之路-developer篇(四)Visualforce结合Reports展示图表
Salesforce作为一款CRM系统,个人觉得最重要的环境便是在于数据的展示和联动,而Salesforce也本身提供了相当强大的功能,Report在展示图表的方面十分强大,前段时间更是宣布以157亿 ...
- django自关联,auth模块
一.自关联 写蛮好的一篇博客:https://www.cnblogs.com/Kingfan1993/p/9936541.html 1.一对多关联 1.表内自关联是指表内数据相关联的对象和表是相同字段 ...
- JavaScript专题之事件循环
准备知识 1. 进程(process) 进程是系统资源分配一个独立单位,一个程序至少有一个进程.比方说:一个工厂代表一个 CPU, 一个车间就是一个进程,任一时刻,只能有一个进程在运行,其他进程处于非 ...
- linux-32位-交叉编译openssl
下载 openssl-1.1.0i.tar.gz ./config no-asm shared –prefix=/usr/local/openssl –cross-compile-prefix=arm ...
- 一个有趣的C语言问题
这个问题是知乎上的一个问题,看了以后觉得比较有意思.代码短到只有十多行,但是这么短的代码却输出了很奇怪的结果.很多人回答的时候都是站在理论的角度上说明代码的问题,但是实际的问题还是没有说明其中的问题. ...
- Flink 从 0 到 1 学习 —— 如何自定义 Data Source ?
前言 在 <从0到1学习Flink>-- Data Source 介绍 文章中,我给大家介绍了 Flink Data Source 以及简短的介绍了一下自定义 Data Source,这篇 ...
- TCC推导过程
svn 账号 yuanzn 密码:TCH5mb 项目分层 MapperDao 数据校验 throw new CloudBaseRuntimeException Helper 数据转换 manager ...
- 使用unittest,if __name__ == '__main__':里代码不执行的解决办法
参考:https://www.cnblogs.com/hanmk/p/8656574.html
- spring boot打印sql语句-mybatis
spring boot打印sql语句-mybatis 概述 当自己编写的程序出现了BUG等等,找了很久 调试运行了几遍到mapper层也进去调试进了源码,非常麻烦 我就想打印出sql语句,好进行解决B ...