• 2024-10-17多校A层冲刺NOIP2024模拟赛08
    多校A层冲刺NOIP2024模拟赛08\(T1\)A.传送(teleport)\(0pts\)弱化版:[ABC065D]Built?|luoguP8074[COCI2009-2010#7]SVEMIR|“迎新春,过大年”多校程序设计竞赛H二次元世界之寻找珂朵莉先不管后面加入的\(m\)条边。对于两点间的路径\(i\toj\),经过中
  • 2024-10-14csp-s模拟11
    csp-s模拟11\(T1\)T2203.玩水(water)\(100pts\)定义一个点\((i,j)\)是分点当且仅当\(s_{i,j+1}=s_{i+1,j}\),而一个点\((i,j)\)是合点当且仅当\((i-1,j-1)\)是分点。先考虑若只有两个人时,只要存在一个分点就一定有解。扩展到三个人时,若存在一个合点可以通过
  • 2024-09-27C T H
    $\\\\\\\$HZ的机房的格局,是和别处不同的:都是当街一个曲尺形的大柜台,柜里面预备着热水和各色各样的饮料。$\\\\\\\$学OI的人,上午下午有了奥赛课,便来机房学习,有时还可以附送一部题单,一边学习一边刷题。倘肯多花一块钱,便可以买一些内部资料,如果出到十几块钱,那就能买到
  • 2024-09-06SGT 进阶(?
    动态开点当正常堆式建树开不下时(\(n\)或\(V\)过大),通常使用动态开点。例题P2781传教算是很板了吧?每次修改的时候,若当前访问节点未建立则新建节点并回溯至上一个节点记录左右儿子。实测写&引用或struct是很方便的。要十分注意的是在work函数(单点修改&标记下放)里面
  • 2024-08-05AT_abl_e Replace Digits 题解
    题目传送门前置知识线段树解法需要维护区间信息,考虑使用线段树维护。预处理出\(\overline{xx\dotsx}\),其中\(x\in\{1,2,3,4,5,6,7,8,9\}\),便于区间赋值。然后就是普通的线段树板子了。代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#de
  • 2024-07-27ABC263F 题解
    题面注意到把对局在图上表示出来是一颗满二叉树(叶节点为选手,其他点为对局),可以考虑树形dp。设\(x\)为\([l_x,r_x]\)之间选手的比赛,且该节点到叶子结点距离\(d_x\)。设\(f(x,p)\)表示胜者为\(p\)的最大钱数,有转移:\[\begin{aligned}f(x,p)&=f(lson(x),p)+g(rson(x))+a
  • 2024-07-20关于线段树优化建图
    线段树优化建图引入对于这道板子题但是我不会大概意思就是:有\(n\)个点、\(q\)次操作。每一种操作为以下三种类型中的一种:连一条\(u→v\)的有向边,权值为w对于所有\(i∈[l,r]\)连一条\(u→i\)的有向边,权值为\(w\)对于所有\(i∈[l,r]\)连一条\(i→u\)的
  • 2024-07-19暑假集训CSP提高模拟2
    暑假集训CSP提高模拟2\(T1\)T2745.活动投票\(30pts\)原题:luoguP2397yyylovesMathsVI(mode)懒得再复制一遍了,直接挂当时的题解得了。点击查看代码intmain(){lln,a,sum=0,ans=-0x7f7f7f7f,i;scanf("%lld",&n);for(i=1;i<=n;i++){
  • 2024-07-17小球掉落(C++)
    #include<bits/stdc++.h>usingnamespacestd;structnode{ intid; booldata; intfather; intlson,rson;};nodetree[6000000];intd,i;intmain(){ cin>>d>>i; tree[1].father=0; tree[1].lson=2; tree[1].rson=3; tree[1].data=false;
  • 2024-06-01Dses
    如题。ABC332F.算是一种期望与概率线段树。考虑$X$有\(\dfrac{1}{d}\)的概率变成\(Y\)的\(E(X).\)古典概型,得到\(E(x)=\dfrac{d-1}{d}X+\dfrac{Y}{d}.\)分作两步:\(x\rightarrow\dfrac{d-1}{d}x\)\(x\rightarrowx+\dfrac{1}{d}Y\)线段树维护就好了。
  • 2024-06-01聊聊 普通平衡树 的 几种做法
    权值线段树#include<bits/stdc++.h>usingnamespacestd;constintMAXN=5e5+10;intn,m,a[MAXN],x,y,op;//Segmenttree#definel(x)tree[x].ls#definer(x)tree[x].rs#definesum(x)tree[x].sumintSegmentsum;structSegmentTree{ intl,r,len,ls,rs,sum,
  • 2024-05-26线段树结构体模板
    线段树是一种维护区间和等功能的数据结构structSegTree{ structnode{ intl,r,sum,len,laz; }tree[N<<2]; inlinevoidpushdown(intu){ intlson=u<<1,rson=lson|1; tree[lson].laz+=tree[u].laz; tree[rson].laz+=tree[u].laz; tree[lson].sum+=tree[lson].len
  • 2024-05-25线段树维护区间字符的两道例题(CF240F CF558E)
    CF240F:https://www.luogu.com.cn/problem/CF240F题目大意:给定一个长为n的由a到z组成的字符串,有m次操作,每次操作将[l,r]的字符串进行重排,得到字典序最小的字符串,输出m次操作后的字符串。大致思路:1.首先我们要想区间内的字典序最小的回文串要怎么构造。回文串无非就两种类型:有一
  • 2024-03-31CCF-CSP真题《202309-3 梯度求解》题解
    题目string转longlong忘记处理负数卡了半天,服了#include<iostream>#include<cstdio>#include<cstring>#include<sstream>typedeflonglongll;usingnamespacestd;intn,m,temp;lla[302];stringf,x,b;llmod=1e9+7;structnode{ stringcon; n
  • 2024-02-20线段树—模板
    线段树常见操作build建树update更新query查询pushup向上回溯pushdown向下延迟更新(延迟标记)建线段树://预编译命令,做符号代换#definelson(gjd<<1)#definerson(gjd<<1|1)//gjd表示当前结点,[l,r]表示区间范围voidbuild(intgjd,intl,intr){tree[gjd]
  • 2024-02-20线段树
    线段树算是树状数组的进阶版了,树状数组能做的,线段树也肯定能做,它做不了的,线段树也能做。但确实线段树的代码量也很让人挠头,基本原理不再解释。先看一下基础的模板吧单点修改和区间查询点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintN=300000;intn
  • 2024-02-06<学习笔记> 笛卡尔树
    笛卡尔树是一种二叉树,每一个节点由键值二元组\((k,w)\)构成,\(k\)满足二叉搜索树的性质,\(w\)满足堆的性质。构建我们可以用一个栈进行构建,假如我们想要求\(k\)满足二叉搜索树的性质,那么我们首先需要按\(k\)从小到大排序,然后一个一个插入;假如我们想要\(w\)满足小根
  • 2023-10-19进行一个脑洞治疗仪的保存
    #include<iostream>#include<fstream>#include<algorithm>//#defineintlonglongusingnamespacestd;structnode_t{ intl,r; intlval,rval,val; intsum,tag;#definel(x)tr[x].l#definer(x)tr[x].r#definelval(x)tr[x].lval#de
  • 2023-09-24模板
    #include<bits/stdc++.h>usingnamespacestd;#definelsp<<1#definersp<<1|1#definelsonls,l,mid#definersonrs,mid+1,r#defineroot1,1,nconstintN=1e6+9,mod=1e9+7;typedeflonglongll;intn,m,a[N];structtree{ intl,r,
  • 2023-09-17Luogu-P4315 月下“毛景树”
    在洛谷中查看前言将边权转化到点权的树剖,很好理解,但我就说说线段树部分。原本想做P1505[国家集训队]旅游的,但是发现它需要边权转化点权,所以先做了这题,于是代码里维护了\(minn\)、\(maxn\)、\(sum\)。包含内容:线段树部分怎么写、本题随机数据生成器线段树怎么写先试着
  • 2023-08-28[HAOI2012] 高速公路 题解
    [HAOI2012]高速公路题解题目链接题目要求我们求期望,先考虑一下求期望的公式。根据期望的定义得:期望费用\(E_v=\dfrac{所有可能路线的总费用}{所有可能路线的数量}\).其中,所有可能路线的数量\(=C_{R-L+1}^2=(R-L+1)(R-L)\),可以在常数时间内计算。(这里用大写的\(L\),\(
  • 2023-07-13NOI2021 题解
    [NOI2021]轻重边转化一下题意:每次给一条链染色,查一条链从\(x\)到\(y\)有几条边两端颜色相同。那这个随便树剖线段树就好了。也可以LCT,码量可能要小点。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>usingnamespace
  • 2023-05-29hdu 5367(线段树+区间合并)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5367官方题解:对于求“高山脉”长度,可以利用线段树。树节点中保存左高度连续长度,左高度连续区间的高度,左高度连续区间的状态(即是否高于第一个高度不同的山),右高度连续长度,右高度连续区间的高度,右高度连续区间的状态,每段区间内的“
  • 2023-02-20线段树板子C++
    structnode{intl,r,sum,lazy;node*lson,*rson;node(){l=r=sum=lazy=0;lson=rson
  • 2023-02-15【题解】Luogu P3939 数颜色
    题目分析:解法一:显然我们可以直接对每一种颜色建一棵线段树,然后剩下的操作就非常简单了。代码:点击查看代码#include<bits/stdc++.h>usingnamespacestd;constint