首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
华华开始学信息学
5条解析
开通博客写题解
苟且的狮子
发表于 2020-07-24 21:20:40
分块、树状数组 题意: 因为上次在月月面前丢人了,所以华华决定开始学信息学。十分钟后,他就开始学树状数组了。这是一道树状数组的入门题:华华很快就学会了树状数组并通过了这道题。月月也很喜欢树状数组,于是给华华出了一道进阶题:给定一个长度为N的序列A,所有元素初值为0。接下来有M次操作或询问:操作:输入
展开全文
hrdate
发表于 2020-07-06 15:04:52
直接for(int i=x;i<=n;i+=x)add(i,y);最坏是o(n^m)=1e10,会爆掉所以需要用个lazy[]进行分块统计小于sqrt(n)复杂度较大的那一部分y,最后在算range_sum(x,y)的时候加上[x,y]中lazy[]数组的贡献 #pragma GCC opti
展开全文
瑜画
发表于 2020-09-22 19:39:13
当d<=sqrt(n)时 直接暴力修改树状数组的值会使复杂度退化到O(n²)所以这里要用到分块的思想,修改lazy标记lazy[i]表示i的倍数的位置中所有的数组成的一个块,查询时l到r对应的lazy,这中间有r/i-(l-1)/i个数,乘以lazy[i]就是分块记录的答案跟树状数组直接记录的
展开全文
流锡
发表于 2021-06-15 12:14:42
思路:分块,树状数组直接树状数组进行add操作for(int i=d;i<=n;i+=d))add(d,k)时间复杂度起码是O(n^m^)=1e10,肯定t这个时候我们可以考虑进行分块操作对于d小于等于√n的我们就存到一个lazy数组里大于√n的我们就直接进行树状数组的add操作这样的话根据上
展开全文
CH_cycyc
发表于 2025-01-30 16:55:47
链接:https://ac.nowcoder.com/acm/problem/23054 来源:牛客网 题目描述 因为上次在月月面前丢人了,所以华华决定开始学信息学。十分钟后,他就开始学树状数组了。这是一道树状数组的入门题: 给定一个长度为N的序列A
展开全文
查看本题
查看本题讨论
相关比赛
6642-牛客小白月赛12(重现赛)@PhantomSamurai
进入比赛
6643-牛客小白月赛12(重现赛)@PhantomSamurai
进入比赛
11435-“萌新杯”阜阳师范大学寒假训练赛
进入比赛
19360-HUAS基础题单9
进入比赛
26896-2021秋季算法入门班第十一章习题:线段树、树状数组
进入比赛
等你来战
查看全部
牛客小白月赛115
报名截止时间:2025-04-25 21:00
牛客周赛 Round 91
报名截止时间:2025-04-27 21:00
2025牛客五一集训派对day1
报名截止时间:2025-05-01 17:00
2025牛客五一集训派对day2
报名截止时间:2025-05-02 17:00
2025牛客五一集训派对day3
报名截止时间:2025-05-03 17:00
2025牛客五一集训派对day4
报名截止时间:2025-05-04 17:00
2025牛客五一集训派对day5
报名截止时间:2025-05-05 17:00
牛客周赛 Round 92
报名截止时间:2025-05-11 21:00
哈尔滨华德学院第十六届程序设计竞赛(同步赛)
报名截止时间:2025-05-13 20:30
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题