BZOJ 4636: 蒟蒻的数列 分块 (未敲)

树莓派IgH EtherCAT主站部署与实时内核调优实战 本文详细介绍了在树莓派上部署开源IgH EtherCAT主站并进行实时内核调优的完整实战流程。通过编译实时内核(RT-Preempt)、交叉编译IgH主站、系统集成配置及性能优化,实现了低成本、高定制的工业控制解决方案,有效满足了EtherCAT通信对微秒级实时性的严苛要求。 阅读详情

转自:http://www.cnblogs.com/qscqesze/p/5785586.html

BZOJ 4636: 蒟蒻的数列 分块
4636: 蒟蒻的数列
题目连接:

http://www.lydsy.com/JudgeOnline/problem.php?id=4636
Description

蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列
题目描述
DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想知
道N次操作后数列中所有元素的和。他还要玩其他游戏,所以这个问题留给你解决。
Input

第一行一个整数N,然后有N行,每行三个正整数a、b、k。
N<=40000 , a、b、k<=10^9
Output

一个数,数列中所有元素的和
Sample Input

4

2 5 1

9 10 4

6 8 2

4 6 3
Sample Output

16
Hint
题意
题解:

这种瞎JB更新的,感觉还是分块简单一点……

这道题要离散化,我偷了个懒,每个询问扔了三个点进去

感想:
这个地方这样用H和H2,可以不用离散,可以学习下。。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5+7;
int n,m,num,belong[maxn],block,l[maxn],r[maxn],low[maxn];
vector<int> V;
map<int,int> H;
map<int,int> H2;
int A[maxn],B[maxn],K[maxn],a[maxn];
void build()
{
    block=sqrt(n/2);
    num=n/block;if(n%block)num++;
    for(int i=1;i<=num;i++)
        l[i]=(i-1)*block+1,r[i]=i*block;
    r[num]=n;
    for(int i=1;i<=n;i++)
        belong[i]=(i-1)/block+1;
}
void update(int L,int R,int k)
{
    if(R<L)return;
    if(belong[L]==belong[R])
    {
        for(int i=l[belong[L]];i<=r[belong[L]];i++)
            a[i]=max(a[i],low[belong[L]]);
        low[belong[L]]=0;
        for(int i=L;i<=R;i++)
            a[i]=max(a[i],k);
        return;
    }
    for(int i=l[belong[L]];i<=r[belong[L]];i++)
        a[i]=max(a[i],low[belong[L]]);
    low[belong[L]]=0;
    for(int i=l[belong[R]];i<=r[belong[R]];i++)
        a[i]=max(a[i],low[belong[R]]);
    low[belong[R]]=0;
    for(int i=L;i<=r[belong[L]];i++)
        a[i]=max(a[i],k);
    for(int i=l[belong[R]];i<=R;i++)
        a[i]=max(a[i],k);

    for(int i=belong[L]+1;i<belong[R];i++)
        low[i]=max(low[i],k);
}

int main()
{
    scanf("%d",&m);
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&A[i],&B[i],&K[i]);
        V.push_back(A[i]);
        V.push_back(B[i]);
        V.push_back(B[i]-1);
    }
    n=3*m;
    build();
    sort(V.begin(),V.end());
    V.erase(unique(V.begin(),V.end()),V.end());
    for(int i=0;i<V.size();i++)
        H[V[i]]=i+1,H2[i+1]=V[i];
    long long ans = 0;
    for(int i=1;i<=m;i++)
        update(H[A[i]],H[B[i]-1],K[i]);
    for(int i=0;i<V.size();i++)
        a[i+1]=max(a[i+1],low[belong[i+1]]);
    for(int i=0;i<V.size()-1;i++)
        ans+=(H2[i+2]-H2[i+1])*a[i+1];
    printf("%lld\n",ans);
}
matlab数学建模练习(2)练习电子科技大学数学实验 【代码】matlab数学建模练习(2)练习电子科技大学数学实验。 阅读详情

相关推荐

创新实训项目博客:基于LoRA的医疗大模型高效微调实战

预训练大语言模型(LLMs)虽然具备了广泛的知识和一定的通用能力,但在特定领域(如医疗)或特定任务(如遵循特定指令格式进行思考链推理)上,其表现往往不尽如人意。微调(Fine-tuning)能够使模型学习到特定领域的数据分布和任务模式,从而在目标任务上获得更好的性能,使其更贴合实际应用需求。使用Unsloth框架加载并以4-bit量化模型。基于数据集,构建了包含明确思考链引导的训练Prompt。配置了LoRA参数,并使用SFTTrainer在单张T4 GPU上对模型进行了高效微调。

m0_73556916的博客 1290

蒟蒻的分块入门

前言 发现分块这个东西已经渗透到经济生活的各个领域(大雾),所以我不得不学些简单的分块技巧,否则会被同机房的jar形绕懵圈的。 解析 首先%%%%hzwer:   http://hzwer.com/8053.html 对于一个有n个元素的数列,我们把它拆碎了,拆成除了最后一块以外,每块都是k的n/k(或许要+1)个块。这样对于某些块,我们可以整块操作,优化时间。 例题:洛谷P3372

litble的成(tui)长(fei)史 1017

三角洲行动交易行自动化脚本

DFMarketBot - 三角洲行动自动交易助手 DFMarketBot是一款专为三角洲行动游戏设计的交易行自动化工具,通过OCR识别和鼠标模拟实现自动补卡、补子弹功能。项目采用Python开发,支持Windows平台,主要功能包括: 自动检测并购买指定物品(房卡/子弹) 价格监控与智能购买(低于设定价格自动下单) 自定义购买数量与次数限制 支持窗口/无窗口两种游戏模式 使用前需安装Tesseract OCR引擎并配置游戏为1920*1080分辨率。通过JSON文件可灵活配置监控物品清单、理想价格和购买策

愤怒的阿木木的博客 3万+

bzoj4636 蒟蒻的数列(离散化+线段树)

因为是只有最后询问一次和,所以可以离散化之后,区间更新最大值,线段树维护即可。叶子节点l表示[ a[l],a[l+1] )。答案就是每个点最后的值乘上这个点所代表的区间。

Icefox的博客 699

UE5动画革命:如何用Motion Matching技术让你的游戏角色动作更流畅(附实战配置)

本文深入解析了UE5中Motion Matching技术的实战配置与应用。通过对比传统动画状态机的局限,详细阐述了如何构建动画数据库、在UE5中配置Pose Search Database及动画蓝图,并探讨了与IK融合、性能优化等进阶策略。该技术能显著提升游戏角色动作的流畅度与真实感,是下一代动画解决方案的核心。

weixin_29075633的博客 862

国产射频直采收发器CX8242KA JESD204C调试

杭州诚芯公司的CX8242KA是国内开发的极少数支持JESD204C接口的高速AD、DA,Serdes具备支持接收和发送,并且速率可以到25Gbps,在国内属于领先水平。250M参考时钟输入,AD采样率2.5G,DA采样率10G,3收2发,主通道模式4,反馈通道模式1,基带采样率1250M,线速率20.625G,收发同时配置混频625M。CX8242KA的204C接口模式支持10种模式,在手册上都有说明。2、 支持TX信道编码,RX信道解码,提升健壮性。这里使用模式4,支持双通道模式,并且反馈开启。

RFSOC的博客 6219

BZOJ4636: 蒟蒻的数列(动态开节点线段树)

题意 题目链接 Sol 直接上动态开节点线段树 因为只有一次询问,所以中途不需要下传标记 #include<bits/stdc++.h> #define LL long long using namespace std; const int MAXN = 8e6 + 10, INF = 1e9 + 10; template <typename A, typename B&gt...

weixin_30394633的博客 194

AI Agent技能评测框架SkillsBench:从黑盒评估到白盒技能拆解

在人工智能领域,模型评估是衡量技术进展的核心环节。传统评测基准如GLUE、MMLU主要关注模型的通用认知能力,但实际工程应用中,AI Agent需要的是在复杂场景中协调多种能力的“职业技能”。SkillsBench创新性地将Agent能力进行原子化拆解,定义了理解规划、工具调用、推理决策、交互安全等技能维度,并通过领域专家构建的评测集确保生态效度。这一框架为Agent开发提供了精准的“度量衡”,使性能优化从经验驱动转向数据驱动,同时为不同模型和框架提供了公平比较的基础,推动了AI Agent生态从“野蛮生长

weixin_30530339的博客 388

【bzoj 4636】蒟蒻的数列(动态开点线段树)

传送门biu~ 在线段树上打修改标记,如果两个标记在同一条线段上显然保留最大的那个标记。最后dfs一遍求和。在dfs时,如果线段树上的某一条线段没被创建过,那么一定不会有这条线段的子线段被打过标记。此时返回这条线段被标记过的最大值乘这条线段的长度。 #include using namespace std; int n; long long ans; struct Node{ No

zP1nG 868

PyCharm高效配置Gitee全攻略

本文介绍了如何在PyCharm和VS Code中配置Gitee插件并管理代码。主要内容包括:1) PyCharm连接Gitee的配置步骤;2) 代码拉取与冲突解决方法;3) VS Code界面功能区域详解;4) 完整的代码提交流程(暂存→提交→推送)。特别说明了VS Code中Git面板的使用方法,以及推送代码到Gitee远程仓库的具体操作步骤。文章还提供了解决代码冲突的建议和注意事项,帮助开发者更好地进行版本控制。

ZhangJiqun&191cm&85kg 298

lammps多晶正弦粗糙界面建模

其中,30可以理解为正弦曲线的幅度,150为正弦曲线的基准坐标值,80控制周期,改变参数多试试就能找到规律。很久之前介绍过lammps粗糙界面建模,主要是在lammps中进行一维和二维的正弦粗糙面建模。运行完成后,会生成final.data,这个模型即为上表面为正弦波动的粗糙界面。新建1.py文件,粘贴下面内容后,运行:python 1.py。多晶需要在atomsk中进行,因此上述的方法就不再适用。最近有学员咨询多晶模型的正弦粗糙界面建模应该如何实现。在cmd窗口按顺序运行以下命令创建多晶模型。

lammps_jiayou的博客 387

蒟蒻分块

蒟蒻在刘巨佬的强烈安利下,终于学习了最弱版本的分块。 这个算法比我想的要暴力很多啊。 所谓分块,就是把一串要处理的数列分成一块一块的。 然后区间处理的时候,范围大于一个块的就区间修改整体修改,否则就暴力遍历。 也就是说每次修改的部分实际上是 左边-块-块-块……块-块-块-右边。左边右边暴力遍历。 分块是一个很宏远的算法,以至于它没有太多基本套路。 不过如何分块是我们要说一下的。这关乎...

gigo_64 sink in my world 237

彻底解决Win11锁屏界面黑屏或者图片不变化

windows锁屏后黑屏

renkai721的专栏 1万+

【BZOJ4636】蒟蒻的数列 STL

【BZOJ4636】蒟蒻的数列 Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想知 道N次操作后数列中所有元素的和。他还要玩其他游戏,所以这个问题留给你解决。 Input 第一行一个整数N,然后有N行,每行三个正...

aodanchui1057的博客 274

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

BZOJ_4636_蒟蒻的数列_线段树+动态开点

BZOJ_4636_蒟蒻的数列_线段树+动态开点 Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想知 道N次操作后数列中所有元素的和。他还要玩其他游戏,所以这个问题留给你解决。 Input 第一行一个整数N,然后...

162

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

BZOJ 4636 蒟蒻的数列

4636: 蒟蒻的数列 Time Limit:30 SecMemory Limit:256 MBSubmit:618Solved:271[Submit][Status][Discuss] Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个...

191

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

[bzoj4636]蒟蒻的数列_线段树

蒟蒻的数列 bzoj-4636 题目大意:给定一个序列,初始均为0。n次操作:每次讲一段区间中小于k的数都变成k。操作的最后询问全局和。 注释:$1\le n\le 4\cdot 10^4$。 想法:那个操作就是一个不好好说话的操作,说白了就是对区间的每一个数取max 然后我们对于那个序列建立分治线段树。每个操作我都把它挂在对应的log的点上。 n个操作都执行完了之后我们从...

dianan0938的博客 337

【bzoj4636】 蒟蒻的数列 [线段树 动态开点]

bzoj4636 蒟蒻的数列 bzoj4636 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想知道N次操作后数列中所有元素的和。 第一行一个整数N,然后有N行,每行三个正整数a、b、k。 N<=40000 , a、b、k<=10^9 一道模板? ==动态开点 然后维护标记 所有操作完之后这段区间内所有数肯定都...

weixin_30338461的博客 197

【bzoj4636】【蒟蒻的数列】【线段树】

Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想知 道N次操作后数列中所有元素的和。他还要玩其他游戏,所以这个问题留给你解决。 Input 第一行一个整数N,然后有N行,每行三个正整数a、b、k。 N O

sunshinezff的专栏 1390

BZOJ4636 蒟蒻的数列 链表

题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想知 道N次操作后数列中所有元素的和。他还要玩其他游戏,所以这个问题留给你解决。 INPUT: 第一行一个整数N,然后有N行,每行三个正整数a、b、k。 N OUTPUT: 一个数,数列中所有元素的和   容易发现各操作之间无顺序性,因此将

リーインカーネイション 558

BZOJ4636 蒟蒻的数列

水题,造个线段树,把标记打线段树上,然后dfs一遍就行了 a可能等于b,判掉就好 #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MA

neither_nor 1150

【BZOJ 4636】蒟蒻的数列

http://www.lydsy.com/JudgeOnline/problem.php?id=4636 DCrusher贡献的题目 看了他的博客,有两种做法,动态开点线段树和离线操作离散化区间线段树,都是标记永久化,最后统一下放标记算出答案。 动态开点线段树速度更快,但是今天李佳蔚讲了stl的用法,包括用unique和lower_bound离散化,所以这道题就用离散化写了_(:з...

as2886089的博客 172

BZOJ 4636: 蒟蒻的数列 分块

4636: 蒟蒻的数列 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4636 Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想知 道N次操作后数列中所有元素的和。他还要玩其他游戏,所以...

weixin_30647065的博客 118

【bzoj4636】蒟蒻的数列

由于数据范围过大,直接线段树会炸,离散化或者动态开点都行。 打个标记在树上,最后把树dfs一边算一下即可。 1 #include<bits/stdc++.h> 2 #define N 10000010 3 #define inf 1000000000 4 using namespace std; 5 typedef long long ll; 6...

di679520024669的专栏 206

【BZOJ】4636: 蒟蒻的数列

4636: 蒟蒻的数列 Time Limit:30 SecMemory Limit:256 MBSubmit:145Solved:71[Submit][Status][Discuss] Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比...

weixin_30768175的博客 175

BZOJ 4636: 蒟蒻的数列

Description蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想知 道N次操作后数列中所有元素的和。他还要玩其他游戏,所以这个问题留给你解决。Input第一行一个整数N,然后有N行,每行三个正整数a、b、k。 N<=40000 , a、b、k<=10^9Out

ypxrain的博客 548
上一篇: CodeForces 472 D ,E,F (MST,构造,线性代数)(待补)
下一篇: Codeforces Round #312 (Div. 2) E. A Simple Task 线段树(未敲)
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值