组队赛第一场线段树

ICPC/CCPC赛事全攻略:从网络赛到总决赛的备赛指南 算法竞赛是计算机领域检验逻辑思维与工程实现能力的重要方式,其核心在于通过限时编程解决复杂问题,强调算法设计、代码效率与团队协作。这种竞赛形式不仅为高校挖掘了顶尖技术人才,更成为保研、校招和科研能力评估的重要参考。从区域赛到全球总决赛,选手需经历网络赛选拔、现场赛角逐等层层筛选,其中网络赛题解、邀请赛真题与省赛记录成为备赛核心资源。ICPC作为全球性赛事,其亚洲赛区竞争激烈;而CCPC则立足国内,为更多高校提供竞技舞台。无论是参考“icpc网络赛2025题解”复盘思路,还是研究“2021年河南省CCPC真题” 阅读详情

https://scut.online/problem.php?id=77

其实是一个单点更新问题,

重要的减小复杂度的就是要知道一个节点最多被用64次就为0了, 还有就是 如果遇到sum【rt】=0;就直接返回0;


自己再敲得时候还是遇到了些问题,,,自己对于ql,qr又没有非常清楚地没有错误。。结果查错差了挺久的



#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<string>
#include<cstring>
#include<iomanip>
#include<iostream>
#include<stack>
#include<cmath>
#include<map>
#include<vector>
#define ll long long
#define inf 0x3f3f3f3f
#define bug1 cout<<"bug1"<<endl;
#define bug2 cout<<"bug2"<<endl;
#define bug3 cout<<"bug3"<<endl;
using namespace std;
const int mod=1000000007;
const int maxn=1e5+5;
ll a[maxn];
int n,m;
ll sum[maxn*4];
void up(int rt){
    sum[rt]=(sum[rt<<1]+sum[rt<<1|1])%mod;
}
void build(int l,int r,int rt){
    if(l==r){
        sum[rt]=a[l];return;
    }
    int mid=(l+r)>>1;
    build(l,mid,rt<<1);
    build(mid+1,r,rt<<1|1);
    up(rt);
}
void update(int ql,int qr,int l,int r,int rt){
    if(sum[rt]==0)return;
    if(ql<=l&&r<=qr){
        if(l==r){
                sum[rt]>>=1;
            return;
        }
    }
    int mid=(l+r)>>1;
    if(ql<=mid)update(ql,qr,l,mid,rt<<1);//这个地方居然写l<=mid了。
    if(mid<qr)update(ql,qr,mid+1,r,rt<<1|1);
    /*
    for(int i=1;i<=2*n;++i)
        cout<<sum[i]<<' ';cout<<endl;
    */
    up(rt);
}
ll query(int ql,int qr,int l,int r,int rt){
    if(sum[rt]==0)return 0;
    if(ql<=l&&r<=qr){
        return sum[rt]%mod;
    }
    ll ret=0;
    int mid=(l+r)>>1;
    if(ql<=mid)ret+=query(ql,qr,l,mid,rt<<1);
    if(mid<qr)ret+=query(ql,qr,mid+1,r,rt<<1|1);
    return ret%mod;
}
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;++i){
            scanf("%lld",&a[i]);
        }
        build(1,n,1);
        for(int i=1;i<=m;++i){
            char c[5];
            scanf("%s",&c);

            if(c[0]=='U'){
                int l,r;
                scanf("%d%d",&l,&r);
                update(l,r,1,n,1);
                /*
                for(int i=1;i<=n;++i){
                    cout<<a[i]<<' ';
                }cout<<endl;
                for(int i=1;i<=2*n;++i)
                    cout<<sum[i]<<' ';
                cout<<endl;
                */
            }
            else{
                int l,r;
                scanf("%d%d",&l,&r);
                /*
                for(int i=1;i<=n;++i){
                    cout<<a[i]<<' ';
                }cout<<endl;

                for(int i=1;i<=2*n;++i)
                    cout<<sum[i]<<' ';
                cout<<endl;
                */
                cout<<query(l,r,1,n,1)<<'\n';

            }
        }
    }
}


2019组队赛第四场(2018湖南省第14届大学生计算机程序设计竞赛)解题报告 Apare_xzc 2019组队赛第四场 解题报告 (2018湖南省第14届大学生计算机程序设计竞赛) 解题报告 by lj zx xzc 2019/4/2 前言: xzc:   这次周赛大的不是很爽,我觉得有一部分原因是我们的状态不好,思维没有很活跃吧。 可能大家都没睡午觉吧。   这场比赛我们队出了3到题,一道签到,一道模拟?一道猜想,剩下的时间都在卡K题和B题。(B题朱有为骗我们说他可以进化成dp手,我们一... 阅读详情

相关推荐

STM32F103VET6实战:用W25Q64外部Flash实现Bootloader远程升级(含完整代码解析)

本文详细介绍了基于STM32F103VET6与W25Q64外部Flash的Bootloader远程升级实现方案,包含硬件选型、存储分区策略、双校验机制及完整代码解析。通过SPI接口实现固件存储与升级,适用于物联网设备开发,提升OTA功能可靠性。

weixin_42620340的博客 358

codeforces 173E 组队

Bsny所在的精灵社区有n个居民,每个居民有一定的地位和年龄,riri表示第i个人的地位,aiai表示第i个人的年龄。 最近社区里要举行活动,要求几个人组成一个小组,小组中必须要有一个队长,要成为队长有这样的条件: 1. 队长在小组中的地位应该是最高的(可以并列第一), 2. 小组中其他成员的年龄和队长的年龄差距不能超过K 有些人想和自己亲密的人组在同一个小组,同时希望所在的小组

Donald_TY的专栏 951

手把手教你用Proteus仿真51单片机抢答器:倒计时+蜂鸣器报警完整项目

本文详细介绍了使用Proteus软件仿真51单片机智能抢答器的完整项目流程。通过系统架构设计、核心元件选型(如74LS30用于按键中断编码),结合状态机编程,实现了带可调倒计时、数码管显示和蜂鸣器报警的八路抢答器功能。项目涵盖了从原理图绘制到代码调试的全过程,是学习嵌入式系统开发的绝佳实践。

tcp8optimizer的博客 263

NYIST-2019省赛训练组队积分赛第一场

A - The Useless Toy CodeForces - 834A 大概题意 给你两个字符,和一个数字n,问你第一个字符转到第二个字符是顺时针转的还是逆时针转的或者无法判断,输入是合法的,保证第一个字符转n次一定可以转到第二个字符 字符只包括四钟,v , ^ , < , > 这个英文题。。。读到爆炸。。。。是个水题。。。就是读不出来题意。。你说气不气。。。。 直接模拟就行了。...

qq_41925919的博客 238

从零搭建一个AF架构项目:基于TIA Portal V19和S7-PLCSIM的仿真调试全流程

本文详细介绍了如何在TIA Portal V19环境中从零搭建西门子Automation Framework(AF架构)项目,包括环境准备、硬件组态、核心组件创建、项目架构分层实现以及仿真调试全流程。通过模块化编程和标准化接口设计,AF架构显著提升工业自动化项目的开发效率和维护便利性,特别适合S7-1500系列PLC的应用开发。

weixin_29313547的博客 675

产品缺陷检测:表面缺陷检测_(1).产品缺陷检测基础理论

确定像素之间的相似性准则,如灰度值的差异。

zhubeibei168的博客 832

【线段树】【4-6组队赛】Problem H

Problem Description #include #include using namespace std; int n,a[110000],b[110000],c[110000],d[110000]; int main() {       while(cin>>n)       {             for(int i=0;i>a[i];      

学习之路 426

YOLO11全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 561

SYSU/ICPC 2011校赛总结

<br /><br />一年前的那个时候,我神马常见算法都不会,就只会调用下STL,就和ZMQ组队去校赛,校赛预选赛就0题被刷掉了。那年的悲剧是相当正常的,我们连Standing都不会刷,都不知道是干嘛的,看哪题做的人比较多也不会看,就傻傻的看一题写一题,不会做跳过,不过还是得吐槽下,2010年校赛预选赛的题也太难了吧!严重打击新手啊!不过最最悲剧的是,我们连他加了一题超级水题都不知道.....我还以为是大家太牛逼了,题目都给做光了!不得不补一道难一点的,免得人家提前走人侮辱出题方!后来才发现,原来是因为题

Czy 4113

5、模型预测控制与分布式MPC控制结构解析

本文深入解析了模型预测控制(MPC)中的双模式预测控制及其稳定性理论,并探讨了分布式MPC的不同控制结构。内容涵盖MPC的基本公式化、性能指标、优化问题以及相关算法步骤,同时比较了集中式MPC、单层分布式MPC和分层分布式MPC的优缺点和适用场景。最后通过流程图和表格形式总结了双模式MPC的算法步骤和控制结构选择思路,并提供了操作建议,以帮助在实际工业系统中更好地应用MPC技术。

tea88的博客 170

245. 项目195:简易文字冒险游戏——《跟老吕学Python·新手》

如果您在学习本专栏教程时遇到任何问题,或有任何技术交流的意愿,欢迎在文章评论区留言,或通过优快云私信与老吕取得联系。老吕将及时回复您的留言,并与您共同探讨,以期为大家提供更为精准和有效的帮助。老吕珍视每一位读者的反馈和支持,期待与您共同学习、共同进步,共同创造美好的未来!我们的目标是不仅教会您Python语言,更是培养您解决问题的思维方式。请随意翻阅,按照自己的节奏学习,让这本专栏成为您编程旅程中的可靠伙伴。开发一个简易的文字冒险游戏,通过文本描述场景和事件,让玩家通过选择不同的选项来推动故事发展。

Python老吕的博客 712

七夕节组队赛小结

七夕组队赛总结前言Accurate MovementManaging DifficultiesEquidistant 前言 今天这场组队赛打完下来发现收获挺多的(指与队友疯狂思想碰撞然后超时了。。)趁着这个feel还没忘赶紧记录一下。 Accurate Movement 这道题应该是全场唯一一道签到题了吧,队友率先把它A了后边看了确实也挺简单的。 题意:给两个矩形(一大一小且都在最左边)问要进行几次挪动(小矩形不超出大矩形的范围)才可以将两个矩形都挪到最右边 思路:很典型的思维温暖签到,可以以各种姿势A出来

qq_50067453的博客 464

嵌入式开发工程师笔试面试指南-Linux驱动

linux驱动

weixin_43491077的博客 473

退役了,总结的ACM近年区域赛的所有题型

主要就是2020年,2021年icpc和ccpc大多场次的银之前的题的题型,可以自己看下区域赛常考的的题的类型,当然自己也可以总结下22年的题型。

hjc的博客 5734

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

线段树/维护转移矩阵(中石油组队赛 K: Addition Robot)

显然是个线段树,如果初始值为x,y。则最后答案显然是x′=a1x+b1y,  y′=a2x+b2yx'=a_1x+b_1y, \ \ y'=a_2x+b_2yx′=a1​x+b1​y,  y′=a2​x+b2​y我们就是用线段树维护这个系数。题目是关于状态累加的,显然可以用矩阵来维护转移状态。而矩阵乘是满足结合律的,显然可以用线段树维护(其实我们队一开始想的是分块,可是一拍脑门,既然都可以结合合并了,那还用个pi的分块)。这里我们如果将初始x,y写入矩阵: ans=.

平凡人Kalzn的博客 308

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

第一次组队赛总结

  昨天IcePoint第一次参战,首战失利!开始看到一道线段树的题,db前一天刚做的,敲之1A。我和gx看一道物理题,开始分析错过程了,3次WA,果断放下!后来db让我看一道贪心的题,纠结的是我们两个都没想出好的贪心策略,只好先放下。gx在做一道大数的题,用的枚举。。。我晕,果断TLE。然后我去看那题,用了一次log(),还是TLE。。。最后想到原来这题很水。被题坑了!整理好思路,敲之,3A。这...

weixin_34315189的博客 112

IEM模型,地表粗糙度模拟

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

2022浙江省赛总结

比赛刚开始的时候,我们看了A题,觉得挺简单的,直接交了一发,WA了,又看了好几分钟,我们决定转去做B,C,我们把签到题都做完之后,转去做L,L我们看了好一会,这时潘震给我们讲了一下思路,我们发现这题就是贪心,过了L之后,我们又转去做A,在又WA了一发后,找到了坑点,过了A。前段时间的训练赛中我们也挺认真的,这也是我们能取得这样成绩的一个重要原因吧,打比赛主要就是要沉住气,以往的训练赛里,我看到很多人被难题卡了就背起书包走了,实际上,就是这段思考难题的时间,才是最关键的,不要来回看几道题,专注于一题。

qq_39854554的博客 267

线段树(石油大学组队赛 G: Performance Review)

题意: 现有一个公司,初始有n个员工。有m年,第i年裁员Ri个人,新增Ri个员工。每个员工都有一个能力值,裁员时选择能力值最低Ri个的裁。保证能力值互不相同。有k次会累计的修改。将第x年新进的第y名员工的能力值改为z。主角是初始1号员工。问:在k次修改后,主角能不能坚持m年不被裁。 题解: 首先明确一点,如果一个人的能力值改前和改后与1号员工的的能力值的相对大小不变。则此后所有的裁员,1号员工则不受影响。 粗略证明: 首先明确,如果当前有x名员工比1号低,y名员工比1号高,则无论这x,y名员工的能力值大小.

平凡人Kalzn的博客 272

你也渴望线段树的力量么

线段树 关于multiply的拙见

nufu_cow的博客 1585

HPU组队赛J:Ball King(线段树)

时间限制 1 Second  内存限制 512 Mb 题目描述 HPU601球王争霸赛即将举行,ACMER纷纷参加. 现在有n个人报名参赛,每个人都有一个实力值 ai,实力值较大者获胜. 为保证比赛公平,我们定义比赛规则: 第一轮:[1, 2]pk,然后[3, 4]pk...最后[2i − 1, 2i]pk. 第二轮:[1, 2]W inner同[3, 4]W inner进行pk,然后[5, ...

执念 282

组队赛整理

第二场: 线段树:这题自己弄了单点更新区间查询还有单点查询区间更新,,都超时了,,题解说还要建立一个每一个节点的单位价格,,。(还是自己做题少,还有,自己敲了之后,知道要注意取模的时候应该是(ret+xxxx)%mod 如果里面有* 还应该(sum[rt]+1LL*val[rt]*c%mod)%mod; 要不然中间会爆然后返回wa 第二题的判断小数循环的。。。我下来居然不会做, 因为有小

now_ing的博客 280

惨淡的蓝桥杯国赛经历

今年的蓝桥杯决赛结束了,仅仅拿了个国三,心情也不是太好。。。简单谈谈这次国赛准备的整个过程和一些感概吧。 省赛3月底就结束了,那时候我谈过感想,就是题水人水,但是能把水人刷下去一大部分,最重要是入门。国赛的话之前没有过经历,只听学长提过,他们都很惨,六题全挂(顶多对一个题吧)拿个国三,有个国奖算是对我们这种弱省弱校的参赛学生有个基本的回报,当然本来也不敢有什么奢望,毕竟水平确实不太高。顺便提一句...

weixin_33800593的博客 1205

Codeforces 842 D Vitya and Strange Lesson 线段树 (未理解透)

参考http://blog.youkuaiyun.com/lxy767087094/article/details/77719670 题意:给出一个长度为n的序列和m次操作,每次操作将序列中所有数异或上给定的数x,然后求序列的mex。 mex:给定序列中未出现的最小的非负数。 思路:首先不要被题目中说的每次序列都会变化迷惑,因为异或满足结合律,因此我们只要把所有的x异或起来,就相当于对原序列和一个x求题

now_ing的博客 403
上一篇: kmp算法一点合集
下一篇: 并查集及优化
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值