洛谷P1505 [国家集训队]旅游(BZOJ2157)

这是一篇关于洛谷P1505 [国家集训队]旅游(BZOJ2157)题目的解题文章,主要探讨了树链剖分这一数据结构在解决该问题中的应用。文章详细阐述了如何利用树链剖分进行裸题操作,并强调了在处理过程中避免包含LCA的重要性。
摘要由CSDN通过智能技术生成

树链剖分

洛谷题目传送门
BZOJ题目传送门

操作有点多的裸树剖。套路下放边权后就是打板子。注意操作的时候不要包括LCA。

代码:

#include<cctype>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 20005
#define F inline
using namespace std;
struct edge{ int nxt,to,d; }ed[N<<1];
struct tree{ int l,r,s,mx,mn,f; }t[N<<2];
int n,k,ti,a[N],w[N],h[N],tp[N],sz[N],to[N],fa[N],id[N],in[N],dep[N];
F char readc(){
    static char buf[100000],*l=buf,*r=buf;
    if (l==r) r=(l=buf)+fread(buf,1,100000,stdin);
    return l==r?EOF:*l++;
}
F int _read(){
    int x=0,f=1; char ch=readc(),c;
    while (!isdigit(ch)&&!isupper(ch)){ if (ch=='-') f=-1; ch=readc(); }
    if (isupper(ch))
        if (ch=='C'||ch==
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值