历届试题_log大侠
例如对序列 3 4 2 操作一次后,这个序列会变成 2 3 2。
drd需要知道,每次这样操作后,序列的和是多少。
第一行两个正整数 n m 。
第二行 n 个数,表示整数序列,都是正数。
接下来 m 行,每行两个数 L R 表示 atm 这次操作的是区间 [L, R],数列序号从1开始。
输出 m 行,依次表示 atm 每做完一个操作后,整个序列的和。
3 3
5 6 4
1 2
2 3
1 3
10
8
6
对于 30% 的数据, n, m <= 10^3
对于 100% 的数据, n, m <= 10^5
峰值内存消耗 < 256M
CPU消耗 < 1000ms
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。
#include<bits/stdc++.h>
using namespace std;
int n,m;
int array[];
int f(int a1,int a2)
{
for(int i=a1;i<=a2;i++){
array[i]=(int)(log(array[i])/log()+);
}
int sum=;
for(int i=;i<sizeof(array)/sizeof(int);i++){
sum+=array[i];
}
return sum;
}
int main()
{
cin >> n >> m;
int ans[m];
memset(array,,sizeof(array));
memset(ans,,sizeof(ans));
for(int i=;i<n;i++){
cin >> array[i];
}
int a1,a2;
int t=;
while(m--){
cin >> a1 >> a2;
a1--;
a2--;
ans[t++]=f(a1,a2);
}
for(int i=;i<t;i++){
cout << ans[i] << endl;
}
}
里对区间里的值进行对数运算,可以看做是更新,区间更新,求和,很明显是线段树...
下面提供一个大佬的代码只供参考:
#include<bits/stdc++.h> using namespace std; const int maxn = ; int num[maxn]; int tree[maxn*]; int n,m; int l,r; int cnt; void build(int x,int l, int r) { if (l == r){ cin >> tree[x]; if (tree[x] == ){//统计数值1的个数 ,方便优化程序 cnt++; tree[x] = ;//将所有1均变为2,防止1干扰程序优化 } return; } int mid = (l+r)/; build(x*,l,mid); build(x*+,mid+,r); tree[x] = tree[x*]+tree[x*+]; } void update(int x,int l,int r,int L,int R) { if (tree[x] == (r-l+)*){ //如果全为2,直接返回 return ; } if (l == r){ tree[x] = num[tree[x]]; return; } int mid = (l+r)/; if (R <= mid) update(x*,l,mid,L,R); else if (L > mid) update(x*+,mid+,r,L,R); else{ update(x*,l,mid,L,mid); update(x*+,mid+,r,mid+,R); } tree[x] = tree[x*]+tree[x*+]; } int main() { for(int i = ; i <= maxn; i++) //打表 num[i] = (int)(log2(i) + ); cin >> n >> m; build(,,n); while(m--){ cin >> l >> r; update(,,n,l,r); cout << tree[]-cnt << endl; } return ; }
历届试题_log大侠的更多相关文章
- 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索
问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...
- 蓝桥杯 历届试题 幸运数 dfs
历届试题 幸运数 时间限制:1.0s 内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2, ...
- 蓝桥杯 历届试题 剪格子 dfs
历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+ |10* 1|52| +--****--+ |20 ...
- 算法笔记_189:历届试题 横向打印二叉树(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 二叉树可以用于排序.其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树. 当遇到空子树 ...
- 算法笔记_186:历届试题 高僧斗法(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 古时丧葬活动中经常请高僧做法事.仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛. 节目大略步骤为:先用粮食(一般是稻米)在地 ...
- 算法笔记_184:历届试题 约数倍数选卡片(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 闲暇时,福尔摩斯和华生玩一个游戏: 在N张卡片上写有N个整数.两人轮流拿走一张卡片.要求下一个人拿的数字一定是前一个人拿的数字的约数或倍数 ...
- 算法笔记_183:历届试题 九宫重排(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成 ...
- 算法笔记_178:历届试题 邮局(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 C村住着n户村民,由于交通闭塞,C村的村民只能通过信件与外界交流.为了方便村民们发信,C村打算在C村建设k个邮局,这样每户村民可以去离自己 ...
- 算法笔记_177:历届试题 城市建设(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 栋栋居住在一个繁华的C市中,然而,这个城市的道路大都年久失修.市长准备重新修一些路以方便市民,于是找到了栋栋,希望栋栋能帮助他. C市中有 ...
随机推荐
- Mysql5.5 InnoDB存储引擎配置和优化
环境为CentOS系统,1G内存,Mysql5.5.30.在/etc/my.cnf内添加: 复制代码代码如下: skip-external-lockingskip-name-resolvemax_co ...
- ES field store yes no 区别——可以设置为false,如果_source有的话
store By default, field values are indexed to make them searchable, but they are not stored. This me ...
- javaScript-基础篇(一)
1.如何插入JS 使用<script>标签在HTML网页中插入JavaScript代码.注意, <script>标签要成对出现,并把JavaScript代码写在<scri ...
- QToolBox
QToolBox类似与以前qq好友分组的那种控件.每个分组是一个Item. 一.添加分组: 其中每个分组是通过一下函数添加的: int addItem(QWidget * w, const QIcon ...
- es6的foreach循环遍历
forEach forEach是Array新方法中最基本的一个,就是遍历,循环.例如下面这个例子: 结果: 这段代码相当于: for (var k = 0, length = array.length ...
- Gym - 101196:F Removal Game(区间DP)
题意:一个环状数组,给定可以删去一个数,代价的相邻两个数的gcd,求最小代价. 思路:区间DP即可,dp[i][j]表示[i,j]区间只剩下i和j时的最小代价,那么dp[i][j]=min dp[i ...
- python 爬取腾讯视频评论
import urllib.request import re import urllib.error headers=('user-agent','Mozilla/5.0 (Windows NT 1 ...
- 安装ORACLE时在Linux上设置内核参数的含义
前两天看到一篇Redhat官方的Oracle安装文档,对于Linux内核参数的修改描述的非常清晰. 安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其 ...
- Maven(5)-优化和重构POM
本文主要介绍如何优化pom,杜绝重复(DRY). 1)模块重复依赖: 2)坐标版本号重复: 3)兄弟依赖 一.项目骨架 上图说明: multi-module-project是一个有多个模块构成的项目, ...
- bzoj 2850 巧克力王国 —— K-D树
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2850 只要暴力判断是否全选一个子树或全不选,如果都不是就进入查询: 要注意值有负,所以不是直 ...