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会进行一次贸易(也就是在这条路径上买入物品然后在后面卖出)然 ...
 
随机推荐
- servlet中的forward()和redirect()
			
从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器 浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏 ...
 - 数据表管理admin
			
知识预览 admin组件使用 admin源码解析 回到顶部 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你 ...
 - BZOJ [Scoi2015]情报传递
			
Description 奈特公司是一个巨大的情报公司,它有着庞大的情报网络.情报网络中共有n名情报员.每名情报员口J-能有 若T名(可能没有)下线,除1名大头日外其余n-1名情报员有且仅有1名上线.奈 ...
 - 编程杂谈——std::vector与List<T>的性能比较
			
昨天在比较完C++中std::vector的两个方法的性能差异并留下记录后--编程杂谈--使用emplace_back取代push_back,今日尝试在C#中测试对应功能的性能. C#中对应std:: ...
 - 小白学 Python(1):开篇
			
人生苦短,我用 Python 引言 大家好,可能大家都对我比较熟悉了,不熟悉请去面壁(现在熟悉一下也来得及)~ 简单做一个自我介绍,我是极客挖掘机的唯一作者,一位油腻的 Java 程序员[臭鸡蛋什么的 ...
 - Linux上的Nginx上设置支持PHP的解析
			
当前的运行环境为,PHP7.2.2以 FastCGI 模式运行,默认端口为:9000,Nginx1.15.6 打开nginx配置文件 vi /usr/local/nginx/conf/nginx.co ...
 - Python3实用编程技巧进阶  ☝☝☝
			
Python3实用编程技巧进阶 ☝☝☝ 1.1.如何在列表中根据条件筛选数据 # 1.1.如何在列表中根据条件筛选数据 data = [-1, 2, 3, -4, 5] #筛选出data列表中大于等 ...
 - 项目开发---使用node.js中sass语法
			
前言:本文中所有sass文件都指后缀名为scss的文件.在此也建议使用后缀名为scss的文件,以避免sass后缀名的严格格式要求报错. 一.sass插件的安装: gulp-sass-china // ...
 - 关于CSS Grid Layout的代码解释
			
.wrapper { display: grid; /*生成grid类型块级网格*/ grid-template-columns: repeat(3, 1fr); /*设置显示的列网格线,且重复3次1 ...
 - 实验吧之【who are you?】(时间盲注)补充
			
第二种方法 使用brup进行盲注 也是一个道理 不多贴了 这里提一下 burp怎么判断超时 Options->Connections->Tiimeouts->Normal这一空 ...