首页 > 其他分享 >C122 李超树合并+DP CF932F Escape Through Leaf

C122 李超树合并+DP CF932F Escape Through Leaf

时间:2024-05-17 22:19:48浏览次数:14  
标签:Leaf Through Escape CF932F DP define

视频链接:C122 李超树合并+DP CF932F Escape Through Leaf_哔哩哔哩_bilibili

 

 

 

C65【模板】线段树合并 P4556 [Vani有约会]雨天的尾巴 - 董晓 - 博客园 (cnblogs.com)

CF932F Escape Through Leaf

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

#define ll long long
#define N 100005
#define INF 0x3f3f3f3f3f3f3f3f
#define mid ((l+r)>>1)

int h[N],to[N<<1],ne[N<<1],idx;
inline void add(int x,int y){
  ne[++idx]=h[x],to[idx]=y,h[x]=idx;
}
struct line{
  ll k,b;
}p[N];
int rt[N],tot,ls[N<<5],rs[N<<5],id[N<<5];
ll n,a[N],b[N],f[N];

ll Y(int i,ll x){ //求Y值
  return p[i].k*(x-N)+p[i].b; //x-N:修正
}
void change(int &u,int l,int r,int i){ //修改
  if(!u){id[u=++tot]=i; return;}
  if(Y(i,mid)<Y(id[u],mid)) swap(i,id[u]);
  if(Y(i,l)<Y(id[u],l)) change(ls[u],l,mid,i);
  if(Y(i,r)<Y(id[u],r)) change(rs[u],mid+1,r,i);
}
ll query(int u,int l,int r,ll x){ //查询
  if(!u) return INF;
  ll ans=Y(id[u],x);
  if(x<=mid)return min(ans,query(ls[u],l,mid,x));
  else return min(ans,query(rs[u],mid+1,r,x));
}
void merge(int &x,int y,int l,int r){ //合并
  if(!x||!y){x=x|y; return;}
  merge(ls[x],ls[y],l,mid);
  merge(rs[x],rs[y],mid+1,r);
  change(x,l,r,id[y]);  //插入直线id[y]
}
void dfs(int x,int fa){ //递归合并
  for(int i=h[x];i;i=ne[i]){
    int y=to[i];
    if(y==fa) continue;
    dfs(y,x);
    merge(rt[x],rt[y],1,N<<1);
  }
  f[x]=query(rt[x],1,N<<1,a[x]+N);
  if(f[x]==INF) f[x]=0; //修正叶子节点
  p[x]={b[x],f[x]};
  change(rt[x],1,N<<1,x); //插入直线x
}
int main(){
  scanf("%lld",&n);
  for(int i=1;i<=n;++i)scanf("%lld",&a[i]);
  for(int i=1;i<=n;++i)scanf("%lld",&b[i]);
  for(int i=1,x,y;i<n;++i)
    scanf("%d%d",&x,&y),add(x,y),add(y,x);
  dfs(1,0);
  for(int i=1;i<=n;++i)printf("%lld ",f[i]);
}

 

标签:Leaf,Through,Escape,CF932F,DP,define
From: https://www.cnblogs.com/dx123/p/18192193

相关文章

  • Uri.EscapeDataString 和 Server.UrlEncoding 的区别
    今天在iis中访问一个即含有空格又含有#的文件名时,通过iis直接访问都无法到达,显示404,即便是urlencode文件名后依然无济于事,最后通过gpt问到了答案。Uri.EscapeDataString和Server.UrlEncode是.NETFramework中用于URL编码的两个方法,它们有以下区别:命名空间和所属类:Uri.Es......
  • 【CodeChef】Prison Escape(最短路)
    题目大意:给出一个01矩阵,求每个0移动(每次可以向有公共边的格子移动一步)到矩阵边界至少要经过多少个1。考虑建最短路模型,将矩阵中的每个位置拆分为入点和出点,矩阵外部设为一个点。枚举矩阵中的每个位置:如果这个位置在矩阵边界,矩阵外部向这个位置的入点连一条长度为0的边。......
  • thymeleaf模版引擎
    什么是模版引擎?模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。Thymeleaf介绍Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎。Thymeleaf的主要目标是为您的开发工作流程带......
  • SolidState 靶机 walkthrough
    扫描┌──(root㉿kali)-[/home/kali]└─#nmap-T5-A-v-p-192.168.80.141StartingNmap7.92(https://nmap.org)at2022-10-2403:50EDTNSE:Loaded155scriptsforscanning.NSE:ScriptPre-scanning.InitiatingNSEat03:50CompletedNSEat03:50,0.00......
  • thymeleaf
    1、通过${}来获取model中的变量,注意这不是el表达式,而是ognl表达式,但是语法非常像<h2th:object="${user}"><p>Name:<spanth:text="*{name}">Jack</span>.</p><p>Age:<spanth:text="*{age}">21</span>.<......
  • SpringBoot+Thymeleaf渲染下拉框异常解决
    常规方式<selectclass="form-control"name="operationType"th:field="${itemTemp.operationType}"style="width:80%"th:disabled="${readonly}"><optionvalue="">选......
  • BinaryTree_CountLeafNode
    /*******************************************************************************************************@filename: :StacksSimulateQueue*@brief :两个栈实现队列的功能*@author :[email protected]*@date :2024/05/04*@version......
  • 使用springboot+thymeleaf 在html中获取session
    Controllerimportorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.GetMapping;importjavax.servlet.http.HttpSession;@ControllerpublicclassUserController{@GetMappin......
  • Jumping Through Segments
    题目:链接:https://www.luogu.com.cn/problem/CF1907D大致思路:二分模拟关键点:①确定二分区间:最小值为第一次跳的左边界,最大值为连续两个线段的最远值(注意,应该有四种情况:左1减右1,左2减右1,左1减右2,左2减右2,取绝对值);②确定如何模拟:递推:假定跳跃长度≤k(mid),那么下一个最远就是ra+......
  • 本地部署 Overleaf 服务
    如果你遇到这样的错误提示:InitiatingMongoreplicaset...RebrandingfromShareLaTeXtoOverleafStartingwithOverleafCEandServerProversion5.0.0theenvironmentvariableswillusetheOverleafbrand.PreviousversionsusedtheShareLaTeXbrandfore......