9.26NOIP模拟 树链剖分

FoundationPose 4090部署 真实场景迁移 复现并应用foundationpose 阅读详情

这道题调了那么久居然是最后的judge错了……
没有考虑m=0和m=1的情况
以

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=100000+5;
int n,m;
int a[N];
int to[2*N],nxt[2*N],head[N],etot;
int dep[N],fat[N],son[N],size[N];
int top[N],in[N],seq[N],idc;
int prime[N],siz;bool isprime[N];
struct node{
    node *ls,*rs;
    int vsum,del,chg;
    void pushdown(int lf,int rg){
        int mid=(lf+rg)>>1;
        if(chg!=-1){
            ls->chg=chg;
            rs->chg=chg;
            ls->del=0;
            rs->del=0;
            ls->vsum=(mid-lf+1)*chg;
            rs->vsum=(rg-mid)*chg;
            chg=-1;
        }
        if(del!=0){
            ls->del+=del;
            rs->del+=del;
            ls->vsum+=(mid-lf+1)*del;//(ls->del);
            rs->vsum+=(rg-mid)*del;//(rs->del);
            //若子节点之前也有del说明之前也更新到过它,那del已经加给它过了
            //这次只用加这次的del即可 
            del=0;
        }
    }
}pool[2*N+5],*tail=pool,*rt;
void adde(int u,int v)
{
    to[++etot]=v;
    nxt[etot]=head[u];
    head[u]=etot;
}
void dfs1(int u,int fa)
{
    dep[u]=dep[fa]+1;
    fat[u]=fa;
    size[u]=1;
    for(int i=head[u];i;i=nxt[i]){
        int v=to[i];
        if(v==fa) continue;
        dfs1(v,u);
        if(son[u]==-1||size[v]>size[son[u]]) son[u]=v;
        size[u]+=size[v];
    }
}
void dfs2(int u,int tp)
{
    top[u]=tp;
    in[u]=++idc;
    seq[idc]=u;
    if(son[u]!=-1) dfs2(son[u],tp);
    for(int i=head[u];i;i=nxt[i]){
        int v=to[i];
        if(v==fat[u]||v==son[u]) continue;
        dfs2(v,v);
    }
}
node *build(int lf,int rg)
{
    node *nd=++tail;
    if(lf==rg){
        nd->vsum=a[seq[lf]];
        nd->del=0;
        nd->chg=-1;
        return nd;
    }
    int mid=(lf+rg)>>1;
    nd->ls=build(lf,mid);
    nd->rs=build(mid+1,rg);
    nd->del=0;
    nd->chg=-1;
    nd->vsum=nd->ls->vsum+nd->rs->vsum;
//  nd->update();
    return nd;
}
void modify_del(node *nd,int L,int R,int lf,int rg,int del)
{
    if(L<=lf&&rg<=R){
        //这个点已经没有原来的chg del的干扰了 
        nd->vsum+=del*(rg-lf+1);
        nd->del+=del;
        return;
        //有标记的意义在于表示它的标记还没有向下传递,但是它已经被标记更新了 
    }
    nd->pushdown(lf,rg);
    int mid=(lf+rg)>>1;
    if(L<=mid)  modify_del(nd->ls,L,R,lf,mid,del);
    if(R>mid) modify_del(nd->rs,L,R,mid+1,rg,del);
    nd->vsum=nd->ls->vsum+nd->rs->vsum;
}
void modify_del(int u,int v,int del)
{
    while(top[u]!=top[v]){
        if(dep[top[u]]<dep[top[v]]) swap(u,v);
        modify_del(rt,in[top[u]],in[u],1,n,del);
        u=fat[top[u]];
    }
    if(dep[u]<dep[v]) swap(u,v);
    modify_del(rt,in[v],in[u],1,n,del);
}
void modify_chg(node *nd,int L,int R,int lf,int rg,int val)
{
    if(L<=lf&&rg<=R){
        nd->del=0;
        nd->chg=val;
        nd->vsum=val*(rg-lf+1);
        return;
    }
    nd->pushdown(lf,rg);
    int mid=(lf+rg)>>1;
    if(L<=mid) modify_chg(nd->ls,L,R,lf,mid,val);
    if(R>mid) modify_chg(nd->rs,L,R,mid+1,rg,val);
    nd->vsum=nd->ls->vsum+nd->rs->vsum;
}
void modify_chg(int u,int v,int val)
{
    while(top[u]!=top[v]){
        if(dep[top[u]]<dep[top[v]]) swap(u,v);
        modify_chg(rt,in[top[u]],in[u],1,n,val);
        u=fat[top[u]];
    }
    if(dep[u]<dep[v]) swap(u,v);
    modify_chg(rt,in[v],in[u],1,n,val);
}
int query(node *nd,int L,int R,int lf,int rg)
{
    if(L<=lf&&rg<=R)
        return nd->vsum;
    nd->pushdown(lf,rg);
    int mid=(lf+rg)>>1;
    int ans=0;
    if(L<=mid) ans+=query(nd->ls,L,R,lf,mid);
    if(R>mid) ans+=query(nd->rs,L,R,mid+1,rg);
    nd->vsum=nd->ls->vsum+nd->rs->vsum;
    return ans;
}
int query(int u,int v)
{
    int ans=0;
    while(top[u]!=top[v]){
        if(dep[top[u]]<dep[top[v]]) swap(u,v);
        ans+=query(rt,in[top[u]],in[u],1,n);
        u=fat[top[u]];
    }
    if(dep[u]<dep[v]) swap(u,v);
    ans+=query(rt,in[v],in[u],1,n);
    return ans;
}
bool judge(int x)
{
    if(x==2) return 0;
    if(!(x%2)) return 1;
    if(x-2<=100000){
        if(isprime[x-2]) return 1;
        else return 0;
    }
    else {
        for(int i=2;i*i<=x-2;i++)
        if((x-2)%i==0) return 0;
        return 1;   
    }
}
void euler(int primesize)
{
    isprime[1]=0;
    memset(isprime,1,sizeof(isprime));
    for(int i=2;i<=primesize;i++){
        if(isprime[i]) prime[++siz]=i;
        for(int j=1;prime[j]*i<=primesize&&j<=siz;j++){
            isprime[i*prime[j]]=0;
            if(!(i%prime[j])) break;
        }
    }
}
int main()
{
    freopen("japari.in","r",stdin);
    freopen("japari.out","w",stdout);
    euler(100000);
    memset(son,-1,sizeof(son));
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    for(int i=1;i<n;i++){
        int u,v;
        scanf("%d%d",&u,&v);
        adde(u,v),adde(v,u);
    }
    dfs1(1,1);
    dfs2(1,1);
    rt=build(1,n);
    while(m--){
        int opt,x,y,v;
        scanf("%d",&opt);
        if(opt==1){
            scanf("%d%d%d",&x,&y,&v);
            modify_del(x,y,v);
        }
        if(opt==2){
            scanf("%d%d%d",&x,&y,&v);
            modify_chg(x,y,v);
        }
        if(opt==3){
            scanf("%d%d",&x,&y);
            int m=query(x,y);
            if(judge(m)) printf("SUGOI\n");
            else printf("TANOSHI\n");
        }
    }
    return 0;
}
7系列ZYNQ硬件调试:Vitis无法识别ARM DAP的排查与解决 本文针对7系列ZYNQ开发中Vitis无法识别ARM DAP的典型硬件调试问题,提供了系统性的排查与解决方案。文章深入剖析了问题本质,指出ARM DAP无法访问的核心原因在于PS部分的电源、时钟或复位等硬件基础条件未满足,并重点强调了PS参考时钟(如33.333MHz晶振)的完整性是关键排查点。通过从电源完整性、时钟与复位信号到JTAG连接与焊接的逐步硬件排查,并结合软件配置交叉验证,为开发者提供了清晰的故障定位思路与实战指南。 阅读详情

相关推荐

从零实现机械臂抓取仿真:用MoveIt+Gazebo完成物体pick&place全流程

本文详细介绍了如何使用ROS的MoveIt框架与Gazebo仿真环境,从零构建机械臂抓取仿真系统。涵盖环境搭建、MoveIt配置、Gazebo集成、抓取动作实现等全流程,帮助开发者掌握机械臂控制的核心技术,实现高效的pick&place任务。

weixin_29250403的博客 476

SAP开发实战:用FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本(附完整ABAP代码)

本文详细介绍了如何使用SAP的FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本,提供完整的ABAP代码实现方案。通过该BAPI,开发者可以高效完成财务凭证的批量修改,确保数据一致性和审计合规性,显著提升SAP财务模块的运维效率。

weixin_29224589的博客 381

NOIP/ACM知识点汇总

NOIP知识点汇总 加*号是选学,加粗为重点,重要值排序不分先后 基础算法 贪心、枚举、分治、二分、倍增、*构造、高精、模拟 图论 图 最短路(dijkstra、spfa、floyd),差分约束 最小生成树(kruskal、prim) 并查集(扩展域) 拓扑排序 二分图染色,*二分图匹配 tarjan找scc、桥、割点,缩点 *分数规划 树 树上倍增(LCA) 树的直径、树的重心 dfs序 *树链剖分 ...

qq_52324533的博客 724

从零开始:在Windows WSL中搭建Openfoam7+blastfoam2.0.0开发环境(避坑大全)

本文详细指导在Windows WSL中搭建OpenFOAM 7与BlastFOAM 2.0.0开发环境,重点解析了安装过程中的常见“坑点”,如编译模式不匹配导致的符号错误,并提供了从系统准备、软件部署到环境验证的完整解决方案,帮助开发者高效构建CFD与爆炸模拟开发平台。

stem5的博客 526

语音信号的AGC自适应增益调整matlab仿真

语音信号的自动增益控制(Automatic Gain Control,AGC)是音频处理领域中的一项重要技术。其核心功能是实时调整输入信号的幅度,使其保持在一定范围内,以优化输出信号的质量。AGC广泛应用于语音通信、语音识别、音频录制和播放等领域,旨在解决输入信号幅度波动问题,确保输出信号的稳定性和清晰度。一、AGC的基本原理1.1 幅度调整自动增益控制的基本原理是根据输入信号的幅度动态地调整系统的增益。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 919

北京2024年CSP-S/J 及NOIP游记

回家凭借脑中记忆的答案(tmd,CCF竟然不让在准考证上记答案),结果发现炸飞了进不了复赛,但突然发现2道完善程序答案填反了,填完后就稳了。开学升入初三,9月的前半个月一直在搞文化课(把文化课搞得风生水起),经历了1天的校运动会(摆了1天,口胡了2道状压dp),中秋节自驾去了石家庄市正定县同时也去了首都环线高速旁的隶属涞水县的野三坡转了转。我在2024.9.25申请停课,但开始的效率非常低,也就搞了搞几道简单题。回去悲痛学了一周的文化课,第一次月考炸飞了,给杨老师写了保证书继续回机房停课。

weixin_42178241的博客 730

safetensors_rust.SafetensorError: Error while deserializing header: MetadataIncompleteBuffer解决方案

本文主要介绍了safetensors_rust.SafetensorError: Error while deserializing header: MetadataIncompleteBuffer解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 Windows 2.2 Linux

weixin_43178406的博客 15万+

19.7.29 NOIP模拟10

话说这次三道考试题直接可以连成一个段子:我一个辣鸡,连模板都不会打,只能跪倒在大佬面前; T1 辣鸡 但是我实在是太辣鸡了,最后干的T1,时间不够用,连暴力都没打对,无奈之下交了一个qj程序,60分(rp分) 正解?没有正解,正解就是一个大暴力,$ O(n^2) $直接出乎我的意料 ,这.......我真的是太辣鸡了; 如此暴力的题,本人就懒得沾代码了; T2 模板 一看题目名,...

weixin_30922589的博客 152

【图像超分】论文精读:SRConvNet: A Transformer-Style ConvNet for Lightweight Image Super-Resolution

本文提出了一种轻量级图像超分辨率重建方法SRConvNet,结合了卷积神经网络和Transformer的优势。针对传统Transformer计算复杂度高的问题,设计了傅立叶调制注意力(FMA)替代自注意力机制,通过区域频率空间调制实现高效的全局依赖建模;同时引入动态混合层(DML),采用混合尺度动态卷积结合通道拆分机制增强局部特征提取。实验表明,SRConvNet在计算效率和参数数量上显著优于现有轻量级超分方法,同时保持了优异的重建性能。该方法为移动端部署提供了有效的解决方案,在精度与复杂度间取得了良好平衡

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 807

(四) OpenClaw-Skill技能全面了解和自定义技能

OpenClaw Skills是提升AI代理功能性的关键模块。本文系统介绍了Skills的核心概念、获取渠道和创建方法。Skills作为标准化指令集合,能让OpenClaw从单纯理解升级为实际执行任务,相比传统System Prompt具有模块化、可复用等优势。用户可通过Clawhub官方商店、GitHub社区等渠道获取5700+现成技能,或按需开发自定义Skill。文章详细演示了创建"Hello World"示例技能的完整流程,包括编写Python脚本、配置SKILL.md文件、部署。

直到世界的尽头 8295

[NOIP模拟测试10]模板

这是道模板题 30分做法: 暴力统计,复杂度$ O(n^2) $,考场上性价比没有70分的高 70分算法: 我们发现有40分算法跟雨天的尾巴很相似,没有时间限制,直接权值线段树动态开点+启发式合并 复杂度$ O(n(log2n)^2) $,考场上我很沙雕地认为它的复杂度是$ O(n^2) $的所以没敢打,以后得多学一学复杂度分析包括内存分析了。 100分算法: 跟树链剖分的...

weixin_30556959的博客 115

stata 工具变量法【计量经济系列(七)】

stata 工具变量法【计量经济系列(七)】 1. 内生性 2. 工具变量3. 2SLS (二阶段最小二乘法) 4. 弱工具变量5. 工具变量外生性的过度识别检验 6. 豪斯曼检验6.1 传统豪斯曼 6.2 杜宾-吴-豪斯曼检验(DWH)

侯小啾技术博客 2万+

【NOIp】NOIp2015

NOIp 2015 day 1 T1 神奇的幻方 标签:模拟 code 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int a[40][40]; 5 int main(){ 6 int n,x[1600],y[1600]; 7 ...

weixin_30539625的博客 233

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

7.29NOIP模拟赛

7.29NOIP模拟赛 T1 YSG (1s,64MB,ysg.in,ysg.out) 描述 ysg,yxy,azw 三人正在刷题。 他们每做一题的时间都是一个有理数。 如果在某一时刻,三人同时做完一道 题,那么,他们会开始谈笑风生。 现在,他们想知道,从时刻 0 开始,至少要等多久才能谈笑风生。 输入格式 一行 6 个整数 a1,b1,a2,b2...

weixin_30532987的博客 154

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

noip2012~2015刷题小记录

noip2012~2015刷题小记录 2012d1t1 密码 模拟题 1 #include&lt;cstdio&gt; 2 #include&lt;cstdlib&gt; 3 #include&lt;cstring&gt; 4 #include&lt;cmath&gt; 5 #include&lt;iostream&gt;...

qq_25768269的博客 185

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

NOIP2016总结

Day1: T1:模拟; 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 #include<string> 6 #include<ctime> 7 #include<c...

weixin_30364147的博客 232

noip2013day1模拟赛

转圈游戏 题目描述Description n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从0 到 n-1。最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第n - m号位置...

weixin_30409849的博客 133

【LNOI2014】【BZOJ3626】NOIp2018模拟(三) LCA

Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设$dep[i]$表示点i的深度,$lca(i,j)$表示i与j的最近公共祖先。有q次询问,每次询问给出l,r,z,求$\sum\limits_{i=l}^{r}dep[lca(i,z)]$。(即求在$[l,r]$区间内的每个节点i与z的最近公共祖先的深度之和) ...

weixin_30602505的博客 157

[Luogu] 金秋集训营提高组 Noip模拟#2 T3 伪神

题目描述 Lass给你出了一道倒闭题: 给你一个n个点的树还有一只青蛙。 由于这棵树被夺去了生命,所以你需要通过青蛙来复活上面的节点,有m次操作。 每次操作有三个参数a,b,t 然后会给你a条链,青蛙都会把每条链上面的所有点增加一秒 然后会给你b个点,青蛙都会把每个点子树里面的所有点增加一秒 注意青蛙是大公无私的,所以每次牠不会管这个节点之前有没有增加过,都会增加一秒 但是因为树失...

weixin_30716141的博客 129

NOIP2015 D2T3 洛谷2680 BZOJ4326 运输计划 解题报告

前言:个人认为这是历年NOIP中比较简单的最后一题了,因此将自己的思路与大家分享。 题目大意: 给一棵无根树,给出m条路径。允许将树上的一条边的权值改为0。求m条路径长度最大值的最小值。n,m<=300000. 思考: 题目将40分部分分给了链的情况。50分的部分分给了n,m<=3000.说明以下两点:   1.链的情况可能是问题的突破口(类比NOIP2016D1T...

weixin_30827565的博客 258

2017-10-28 noip模拟赛by WISCO 信息组

第一次做模拟赛,自我感觉良好(大概是这套题比较简单) T1 名称为“数据结构”,这也太坑了点……233 要维护一个数列(初始为零),支持区间加与查询。 查询的是一个区间中有多少数满足min<=(a[i]*i%mod)<=max,其中min、max、mod是一开始给出来的,a[i]表示这个数的值,i表示这个数的编号 n<=80000,一开始修改与查询个数<=1e...

weixin_30954607的博客 129

停课记录(已停止更新)

今天是停课第一天(9.26),自我感觉状态还不错。然后心血来潮就想跟着神犇学写博客了233 对于马上到来的NOIP,也是比较慌。所以打算在这次停课期间全力冲刺,争取拿到NOIP一等。 嗯,发个Hello World!压压惊0v0#include<cstdio> #include<cstring> #include<iostream> using namespace std; int main()

Loi_yuan的博客 2023

做题中的错误总结

马上NOIP2018啦,突然发现自己比去年还菜,写水题时出现了很多错误,记录一下。 2018.7.8 luoguP2016 战略游戏 节点从0编号。 所以以i为根时不能设i的根为0,应设为-1 for(int i=0;i<n;i++) dp(i,-1),ans=min(ans,min(f[i][0],f[i][1])); 2018.7.9 luog...

weixin_30587025的博客 243

重走长征路---OI每周刷题记录---6月14日 2014

总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做。2018-11-28 重走长征路---OI每周刷题记录---6月14日  2014 本周共计45题+2题 测评地址: 爬山算法: 1.「luogu1337」[jsoi]平衡点   //在线测评地址https://www.luogu.o...

mrcrack的博客 1440

DTOJ#5021. 最近公共祖先

作为此次 NOIP 模拟的最后一道题,宫水三叶决定把题意说得简单一点。 给一棵大小为 nnn 的以 rtrtrt 为根的树。 有 mmm 组询问,每次询问 l,r,xl,r,xl,r,x,你要回答有多少 l≤a<b≤rl \le a < b \le rl≤a<b≤r,满足 a,ba,ba,b 的最近公共祖先为 xxx 。 第一行三个整数 n,m,rtn,m,rtn,m,rt 。 接下来 n−1n-1n−1 行,每行两个整数 xi,yix_i,y_ixi​,yi​ ,表示一条边。 接下来 m

Mystletainn的博客 263
上一篇: bzoj3694&bzoj1576 dijkstra+树链剖分
下一篇: 国庆总结
五彩蒟蒻DDD
博客等级 码龄10年 20粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值