[Acmer日志]2021/3/20星期六,天气多云,小冷
[Acmer日志]2021/3/20星期六,天气多云,小冷
- 今日算法
- 树状数组
- 差分树状数组
- 双重树状数组——区间修改区间查询
- 今日AC数: 1
- 今日总结:
- 明天目标
- 今日鸡汤
- 今日bgm
今日算法
今天主要是复习上星期的树状数组
- 树状数组——单点修改区间查询
- 差分树状数组——区间修改单点查询
- 二重树状数组——区间修改区间查询
树状数组
用来解决区间求和问题。
设树状数组C[]与原数组A[], C中的第i项是原数组A从i开始前lowbit(i)项的和(可能有点难以理解)
如下图所示
lowbit(i)是i转化成二进制后从右往左数第一个1代表的值。
实现方法
int lowbit(int x) {return x & -x;
}
树状数组的构建方法(构建即更新)
void update(int i, int val) {while (i <= n) {c[i] += val;i += lowbit(i);}
}
求和方法
int sum (int i) {int ret = 0;while(i > 0) {ret += c[i];i -= lowbit(i);}return ret;
}
差分树状数组
首先要理解差分数组的概念
- 差分数组:d[i]记录a[i] - a[i - 1]及原数组当前项与前一项的差。
- 优点:前缀和的特殊含义
代码实现:
//区间更新,单点查询
//树状差分数组
#include <bits/stdc++.h>
#define MAXN 100007
using namespace std;
int n;
int c[MAXN];
int lowbit(int x) {return x & -x;
}
void update(int p, int val) {while(p <= n) {c[p] += val;p += lowbit(p);}
}
int sum (int i) {int ret = 0;while(i > 0) {ret += c[i];i -= lowbit(i);}return ret;
}
int main(void) {int l, r;while(cin >> n, n) {memset(c, 0, sizeof(c));for (int i = 1; i <= n; ++i){cin >> l >> r;update(l, 1);update(r + 1, -1);}//这里的更新操作是关键,区间左端点为l,右端点为r,d[l]+val, d[r + 1]-valfor (int i = 1; i <= n; ++i){cout << sum(i);if (i != n)cout << " ";}cout << endl;}return 0;
}
双重树状数组——区间修改区间查询
利用差分树状数组完成区间求和,注意上图中公式的推导,需要同时维护两个树状数组
其他操作都和树状数组一样
今日AC数: 1
今日总结:
起床洗漱吃药干饭一气呵成,回宿舍听音乐然后做数学课后习题,午休后完成数学练习册,数学作业完成,已达成昨日目标。
傍晚撸铁练背,再次认识到自己的弱小、鸡肋。俯身单臂划船动作竟然能练到腰!
引体向上c10x6、高位下拉c10x4、正身换船c10x4、俯身单臂划船c15x4、卷腹c25x4
晚上318右聚餐,辛总川菜馆一棒子打死,避坑,回来给小棋做作业,发现用电脑写程序更方便(编程除了做题以外终于有用武之地了),被小棋贬为码农。
复习上星期的数学数组并完成日志总结。
虽然感觉不出进步,起码今天感觉不空虚
明天目标
今天目标完成了,飘了,感觉目标得高亿点点了。
今晚极有可能熬夜所以明天可能起来就中午了,遂打算按10.30起床开始,11.完成准备工作,静下心来学习线性代数5小时(到下午四点半,中间吃饭+两次休息30min),考虑去健身、干饭、回宿舍写做这星期的算法作业、洗澡、继续做作业、打游戏、刷一下b站、睡觉。
今日鸡汤
苦苦苦无限,
不苦苦无穷。
苦尽甘来日,
方知苦是功。
今日bgm
Rumors——ZAYN
[Acmer日志]2021/3/20星期六,天气多云,小冷相关推荐
- 【不忘初心】Win10_LTSC2021_19044.1381_X64_可更新[纯净精简版][2.52G](2021.11.20)
此版可正常更新补丁,母版来自UUP WIN10_LTSC2021 19044.1288集成补丁到19044.1381为了保证稳定初心的系统全部都是离线精简和优化,非二次封装.系统纯净.流畅.进程少无任 ...
- 市面上主流编辑器介绍(2021/05/20)
市面上主流编辑器介绍(2021/05/20) 背景 Markdown是一种有用的轻量级标记语言,后续Markdown简写为md. 富文本编辑器(Rich Text Editor,RTE)是一种可内嵌于 ...
- PowerBI视觉对象共计271组,2021.01.20日更新
PowerBI视觉对象共计271组,2021.01.20日更新 内容包含导入文件和图标.预览图.文件名一致,在预览图内找到合适的可以直接在视觉对象文件夹搜索 下载地址:点击下载 超便宜 或者复制链接打 ...
- 2021.05.20最少数量的箭引爆气球
2021.05.20最少数量的箭引爆气球 题目描述 在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标.由于它是水平的,所以纵坐标并不重要,因此只要知道开始和 ...
- 普转题比赛2021/7/20
普转题比赛2021/7/20 射命丸文 考试ing 正解 帕秋莉·诺蕾姬 考试ing 雾雨魔理沙 考试ing 正解 伊吹萃香 考试ing 正解 知道这次是老刘出题就有一种不祥的预感,毕竟之前他出题的时 ...
- 日志2021年11月
2021.11.2 1.CDD问题 车辆静止时纵向加速度传感器不为零,在程序中已添加偏移量96,但相同代码26日数据正常,27日有异常,需要后续跟进. 2.长安新能源测试报告 功能开,测试了AYC所有 ...
- GMOJ - 2021.07.20【普及组】模拟赛C组 - 排座椅(seat)、传球游戏(ball)、立体图(drawing)、间谍派遣、seek
文章目录 luogu博客链接 GMOJ - 2021.07.20[普及组]模拟赛C组 - 排座椅(seat).传球游戏(ball).立体图(drawing).间谍派遣.seek T1 排座椅(seat ...
- 记第一次Python数据分析练习——2018年“泰迪杯”数据分析职业技能大赛B题(2021/5/20)
文章目的 本人目前是应用统计专业大二(2021/5/20)的本科生,上学期上过Python课,但说实话讲的不深,过了一个学期也基本上忘光了. 最近深刻地觉得计算机专业真是好啊,以后我也要当程序员.JP ...
- 尚硅谷——谷粒商城项目开发记录——2021.11.20
尚硅谷--谷粒商城项目开发记录--2021.11.20 概念: 1.SpringCloud Alibaba: 简介: Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此 ...
最新文章
- MATLAB数据处理快速学习教程
- c++计算eigen随笔(1)
- lumanager mysql密码_LuManager单独安装mysqli
- ALLyeSNO 优化版浩方 第二版 Ver 2007 06 15 清除广告 自动挤房间
- python特征工程插件_python特征工程
- opensource项目_最佳Opensource.com:科学
- OpenShift Security 16 - 用 RHACS 为加固应用镜像安全提供线索
- C语言 signal
- rtorrent -- PT机的下载利器
- 联想笔记本大写提示软件_联想威6 2021款怎么样?值得买吗?下面几点或许可以帮到您...
- 【数电】数电基础知识
- Win10系统安装office后excel等文件图标显示异常
- java计算机毕业设计文档资料管理系统源码+系统+数据库+lw文档+mybatis+运行部署
- RK3399调试支持以太网
- 交叉编译Qt5.9.6
- SEO站内词库布局与关键词搜索排名秘诀
- 不重不漏的分析方法:MECE分析法
- 学校计算机室上机记录,学生上机记录表
- 电子邮件管理系统 android,IM800电子邮件管理系统
- JSR303后端校验详解